Я должен делать что-то неправильно здесь, но я не могу найти, что ... Я делаю страницу для своего веб-сайта, которая, среди прочего, предоставляет инструкции для рабочих мест на основе текущего местоположения пользователя. Чтобы получить их местоположение, я использую Geolocation API, реализованный в Firefox (я тестировал FF9 и теперь FF10). На данный момент я тестирую с примером кода, который в Wikipedia article:API геолокации не работает, и Google Maps «Мое местоположение»
<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>
(копировать/вставить эту информацию в текстовом редакторе, сохранить как «whatever.html» и перетащите файл в браузере откройте его)
Очень простой код, и он действительно работал нормально в прошлый четверг, 26.01.12. (Я знаю, я знаю, люди говорят: «Это сработало вчера!», Когда они действительно что-то придумали, но я клянусь, что это действительно так.) С тех пор, однако, это дало мне код ошибки 2 «POSITION_UNAVAILABLE». Я попробовал это с моим рабочим компьютером в своей рабочей сети, моей работе и домашних компьютерах на моем домашнем интернет-соединении, а также на моем рабочем компьютере в точке доступа Wi-Fi с моего телефона, и каждый раз он дает код ошибки 2.
Я думал, может быть, я как-то goofed что-то в моем браузере или мои настройки сети или что-то (хотя я не мог себе представить, что), поэтому я попытался следующий тест, который каждый человек должен быть в состоянии сделать:
- Перейдите на maps.google.com.
- Искать «сиэтл» (или какое-то другое место, что угодно).
- Нажмите кнопку «Направить маршрут».
- В указателях слева «A» следует сказать «Мое местоположение» и «B» следует сказать «сиэтл». (Если он не говорит «Мое местоположение» в A, введите «m» в поле, а раскрывающееся меню с автоматическим заполнением обычно будет иметь «Мое местоположение» в качестве первого варианта.)
- Нажмите «ПОЛУЧИТЬ НАПРАВЛЕНИЯ», кнопка.
- В Firefox должно появиться сообщение о том, что maps.google.com хочет знать ваше местоположение. Нажмите «Поделиться местоположением».
- Через пару секунд он должен либо показать вам маршруты откуда-нибудь (где бы он ни думал, ваш сервер), в Сиэтле, либо поле «А» должно исчезнуть, и оно скажет «Не удалось найти ваше местоположение» или аналогичное к верхней части карты.
И вот что странно: я еще не получил этого, чтобы работать на любом компьютере. Мой рабочий компьютер (как на FF10, так и на Chrome), компьютеры моих коллег, мой домашний компьютер и рабочий компьютер GF все делают то же самое; ни один не может найти местоположение.
Так что мой вопрос: Является ли API-интерфейс местоположения или что-то в этом роде, или я что-то прикручиваю? Я не смог найти какие-либо указания в Интернете об отключении API, и кажется, что отключение очень маловероятно, но если да, то почему он не работает на любом компьютере, на котором я его пробовал? Может ли кто-нибудь еще дублировать эти данные или знать, что я делаю неправильно?
Спасибо!
Да, API запущен. Поскольку вы пробовали компьютеры, принадлежащие нескольким людям, я также исключаю, что вы запретили делиться своим местоположением своим браузером. Звучит более правдоподобно, что ваш просмотр пытается, но терпит неудачу, потому что на его пути что-то идет. – miguev
Я в Портленде, штат Орегон. Надеюсь, Google знает, где это. :) И я видел, как один ISP блокировал его, но я пробовал из того, что должно быть как минимум четыре отдельных провайдера: мой рабочий доступ в Интернет, который фактически через интрасеть, которая подключается к внешнему миру где-то на восточном побережье, а затем мой домашний интернет-провайдер, мой Wi-Fi-телефон моего телефона Android и мое рабочее соединение GF. Появляется окно с вопросом, хочу ли я каждый раз делиться местоположением, чтобы часть работала нормально, но затем он возвращает код ошибки 2 с моим тестовым кодом и не может найти «Мое местоположение» на Картах Google. – Sam