Я хочу реализовать геолокацию в своем приложении.Геолокация не работает на смартфоне
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getPosition, errorGettingPosition);
}
function getPosition(position) {
var myLatitude = position.coords.latitude;
var myLongitude = position.coords.longitude;
var radiusEarth = 6371;
myLongitude = myLongitude * (Math.PI/180);
myLatitude = myLatitude * (Math.PI/180);
var x0 = myLongitude * radiusEarth * Math.cos(myLatitude);
var y0 = myLatitude * radiusEarth;
for (var i = 0; i < list.length; i++) {
var vendorLongitude = list[i].Longitude = list[i].Longitude * (Math.PI/180);
var vendorLatitude = list[i].Latitude = list[i].Latitude * (Math.PI/180);
var x1 = vendorLongitude * radiusEarth * Math.cos(vendorLatitude);
var y1 = vendorLatitude * radiusEarth;
var dx = x0 - x1;
var dy = y0 - y1;
var d = Math.sqrt((dx * dx) + (dy * dy));
if (d < 1) {
list[i].Distance = Math.round(d * 1000) + " m";
} else {
list[i].Distance = Math.round(d * 10)/10 + " km";
}
}
//add vendors to scope
$scope.vendors = list;
}
function errorGettingPosition(err) {
if (err.code == 1) {
alert("User denied geolocation.");
}
else if (err.code == 2) {
alert("Position unavailable.");
}
else if (err.code == 3) {
alert("Timeout expired.");
}
else {
alert("ERROR:" + err.message);
}
}
Я написал эти коды. В браузере на компьютерах он будет работать отлично, но если я установлю это приложение на своем смартфоне (Android, версия 5.1.1), это не сработает, и я не знаю почему. Он также не входит в функцию ошибки на смартфоне.
Знаете ли вы, что делать?
Я также не вхожу в функцию ошибки. – user3679607
Да, я мог видеть. используйте 'watchPosition' и попытайтесь вызвать эту функцию на готовом документе. –
У меня есть приложение, нет функции document.ready. – user3679607