Я занимаюсь разработкой веб-сайта, который опирается на данные геолокации мобильного пользователя.Я делаю это типичным способом через:
function initialize() {
if(window.google && google.gears) {
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(useLocation, errorOnLocate);
}
else if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
}
else {
alert("no geo found");
}
}
function errorOnLocate(message)
{
alert(message);
zoomTo(-34.397, 150.644);
}
Это всегда приводит к сбою [object PositionError] в функции errorOnLocate, даже если я переключаю порядок методов геолокации.
Это на HTC Hero с android 2.1, использующим любой встроенный браузер. Мой gps включен, и я дал указание браузеру разрешить веб-сайтам просматривать мое местоположение.Функция «местоположение» в родном приложении карты Google, которое приходит на телефон, точно определяет мое местоположение
Более того, если я захожу на мой сайт с помощью FireFox 3.5 на моем персональном компьютере, он будет правильно определять мое местоположение (Я считаю, что он использует комбинацию точек данных ip и ap).В любом случае, он использует тот же JavaScript.
РЕДАКТИРОВАТЬ: это HTML / JS в браузере, а не нативное приложение.Также точное сообщение об ошибке: «Последний поставщик местоположения был отключен»