Я, должно быть, что-то делаю не так, но не могу найти, что ... Я создаю страницу для веб-сайта моей компании, которая, помимо прочего, предоставляет указания для сайтов вакансий на основе текущего местоположения пользователя.Чтобы определить их местоположение, я использую API геолокации , реализованный в Firefox (я тестировал с FF9, а теперь и с FF10).В данный момент я тестирую с примером кода, который находится в статье Википедии :
<html>
<head>
<title>Geolocation Test</title>
<script type='text/javascript'>
var gl;
function displayPosition(position) {
var p = document.getElementById("p");
p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>" + position.timestamp +
"<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
"<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";
}
function displayError(positionError) {
alert("error " + positionError.code);
}
try {
if (typeof navigator.geolocation === 'undefined'){
gl = google.gears.factory.create('beta.geolocation');
} else {
gl = navigator.geolocation;
}
} catch(e) {}
if (gl) {
gl.getCurrentPosition(displayPosition, displayError);
} else {
alert("Geolocation services are not supported by your web browser.");
}
</script>
<body>
<p id='p'></p>
</body>
</html>
(скопируйте / вставьте это в текстовый редактор, сохраните как "what.html"и перетащите файл в браузер, чтобы открыть его)
Очень простой код, и он действительно работал нормально в прошлый четверг, 26.01.12.(Я знаю, я знаю, что люди говорят: «Это сработало вчера!», Когда они на самом деле что-то пошутили, но я клянусь, что это действительно так.) Однако с тех пор он выдает мне код ошибки 2 «POSITION_UNAVAILABLE».Я попробовал его с моим рабочим компьютером в моей рабочей сети, моими рабочими и домашними компьютерами в моем домашнем интернет-соединении, и моим рабочим компьютером в точке доступа Wi-Fi с моего телефона, и он каждый раз выдает код ошибки 2.
Я подумал, что, может быть, я как-то обманываю что-то в своем браузере или в настройках своей сети или что-то еще (хотя я не мог вообразить, что), поэтому я попробовал следующий тест, который должен уметь каждый:
- Перейдите на maps.google.com.
- Найдите «Сиэтл» (или другое место, что угодно).
- Нажмите кнопку «Получить маршрут».
- В полях с инструкциями слева «А» должен сказать «Мое местоположение», а «В» - «Сиэтл».(Если в поле «Мое местоположение» не указано «A», введите «m» в поле, и в автоматически заполняющемся раскрывающемся списке в качестве первого параметра обычно будет указано «Мое местоположение».)
- Нажмите кнопку "Кнопка «ПОЛУЧИТЬ НАПРАВЛЕНИЯ».
- В Firefox должно появиться сообщение о том, что maps.google.com хочет узнать ваше местоположение.Нажмите «Поделиться местоположением».
- Через пару секунд он должен либо показать вам указания откуда-то (где он думает, что ваш сервер) в Сиэтле, либо поле «А» должно остаться пустым, и оно скажет«Не удалось найти ваше местоположение» или что-то подобное в верхней части карты.
И вот странная вещь: я еще никогда не заставлял это работать на любом компьютере.Мой рабочий компьютер (как на FF10, так и в Chrome), компьютеры моих коллег, мой домашний компьютер и рабочий компьютер моего GF делают одно и то же;никто не может найти местоположение.
Итак, мой вопрос: не работает API определения местоположения или что-то в этом роде, или я что-то напортачу?Я не смог найти в Интернете никаких признаков сбоя API, и кажется, что сбой маловероятен, но если так, то почему он не работает ни на одном компьютере, на котором я его пробовал?Может кто-нибудь еще повторить эти выводы или знает, что я делаю не так?
Спасибо!