API геолокации не работает, а Google Maps "Мое местоположение" - PullRequest
1 голос
/ 02 февраля 2012

Я, должно быть, что-то делаю не так, но не могу найти, что ... Я создаю страницу для веб-сайта моей компании, которая, помимо прочего, предоставляет указания для сайтов вакансий на основе текущего местоположения пользователя.Чтобы определить их местоположение, я использую 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.

Я подумал, что, может быть, я как-то обманываю что-то в своем браузере или в настройках своей сети или что-то еще (хотя я не мог вообразить, что), поэтому я попробовал следующий тест, который должен уметь каждый:

  1. Перейдите на maps.google.com.
  2. Найдите «Сиэтл» (или другое место, что угодно).
  3. Нажмите кнопку «Получить маршрут».
  4. В полях с инструкциями слева «А» должен сказать «Мое местоположение», а «В» - «Сиэтл».(Если в поле «Мое местоположение» не указано «A», введите «m» в поле, и в автоматически заполняющемся раскрывающемся списке в качестве первого параметра обычно будет указано «Мое местоположение».)
  5. Нажмите кнопку "Кнопка «ПОЛУЧИТЬ НАПРАВЛЕНИЯ».
  6. В Firefox должно появиться сообщение о том, что maps.google.com хочет узнать ваше местоположение.Нажмите «Поделиться местоположением».
  7. Через пару секунд он должен либо показать вам указания откуда-то (где он думает, что ваш сервер) в Сиэтле, либо поле «А» должно остаться пустым, и оно скажет«Не удалось найти ваше местоположение» или что-то подобное в верхней части карты.

И вот странная вещь: я еще никогда не заставлял это работать на любом компьютере.Мой рабочий компьютер (как на FF10, так и в Chrome), компьютеры моих коллег, мой домашний компьютер и рабочий компьютер моего GF делают одно и то же;никто не может найти местоположение.

Итак, мой вопрос: не работает API определения местоположения или что-то в этом роде, или я что-то напортачу?Я не смог найти в Интернете никаких признаков сбоя API, и кажется, что сбой маловероятен, но если так, то почему он не работает ни на одном компьютере, на котором я его пробовал?Может кто-нибудь еще повторить эти выводы или знает, что я делаю не так?

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Ваш скрипт работает нормально, а также функция определения местоположения в Картах Google (FF9.0.1)

Где ты? (Я имею в виду физически) Возможно, что если вы находитесь в каком-то отдаленном месте, Google еще не может вычислить ваше местоположение! Попробуйте в каком-нибудь большом городе, может быть ...

Другая возможность может заключаться в том, что у вас нет доступа к серверам местоположения Google, как если бы ваш провайдер заблокировал его ...

0 голосов
/ 02 февраля 2012

Ваш скрипт работает в Chrome, но не в FF. Ошибка, которую я получаю в FF, заключается в том, что позиция недоступна. Это означает, что, вероятно, служба определения местоположения FF не имеет доступа к моей сети Wi-Fi. Я предполагаю, что ошибка, которую вы получаете, является ошибкой 2 в вашем предупреждении?

Если вы используете Firebug, вы можете установить точку остановки в строке 15. Когда она остановится, нажмите positionError на панели Watch справа и посмотрите, что это за код. Мой читает: код 2, что переводится как недоступно.

Я предлагаю вам другой код для обработки этого экземпляра.

...