Поставщик геолокации для Firefox, который позволяет вводить вручную
Есть ли какие-либо простые способы переопределить поведение по умолчанию geolocation api и просто скорректировать свое текущее местоположение?
Я думаю, что это было бы полезно для тестирования и для соображений конфиденциальности (предоставление фальшивых данных о местоположении)
Я думал, что есть дополнение для этого, но я не могу найти его. Теперь только опция теперь меняет about: config geo.wifi.url на некоторый альтернативный веб-сервис, который я считаю чрезмерно сложным.
Любые идеи?
Спасибо
Идеальный сценарий
Кто-то реализует надстройку, в которой отображается карта google, и я могу выбрать новое местоположение по умолчанию.
Ответы
Ответ 1
Geo.wifi.uri не обязательно должен быть веб-сервисом. Вы также можете установить его на локальный uri с файлом://...
Файл должен быть json файлом с таким содержимым:
{"location": {
"latitude": 48.777025000000002,
"longitude": 9.1713909999999998,
"accuracy": 10.0}}
Update:
Для Firefox 9+ формат изменился:
{
"status": "OK",
"accuracy": 10.0,
"location": {"lat": 48.777, "lng": 9.171}
}
Или вы можете комбинировать их для поддержки обоих:
{
"status": "OK",
"accuracy": 10.0,
"location": {
"lat": 48.777,
"lng": 9.171,
"latitude": 48.777,
"longitude": 9.171,
"accuracy": 10.0
}
}
Обновление: похоже, что вручную это предпочтение блокируется провайдером при использовании службы Google. См. Ошибка 716453
Обновление 2: geo.wifi.uri не geo.wifi.url
Ответ 2
Самый простой способ - перейти к about:config
, а затем в поле фильтра ввести geo.wifi.uri
, дважды щелкнуть единственную строку конфигурации, которая появится, и ввести значение ниже после замены xxx
и yyy
с координатами, которые вы получаете от службы, например http://www.getlatlon.com/:
data:application/json,{"location":{"latitude":xxx,"longitude":yyy,"accuracy":10}}
Этот трюк не требует никаких надстроек или локальных/размещенных файлов. Убедитесь, что значение не имеет пробелов и находится на одной строке!
Ответ 3
Geolocater - экспериментальное дополнение, позволяющее редактировать геолокацию.
Ответ 4
В Chrome вы можете использовать расширение Manual Geolocation. Это позволит вам графически выбрать местоположение вашего руководства.
Ответ 5
Хммм, вы не можете издеваться над navigator.geolocation
напрямую - возможно, вы можете реорганизовать свой код, который использует его для использования другого объекта - скажем customGeoLocation
.
В процессе производства вы можете просто установить customGeoLocation
в navigator.geolocation
, а в тестах использовать макетную реализацию любой функции, которую вы используете.
EDIT:. Вы можете заменить функции на объект navigator.geolocation
, но это все еще бесполезно, если вы используете библиотеку mock (например, JsMock), которая должна создавать макет. Таким образом, вы не сможете заменить navigator.geolocation
макетом.
Вы можете издеваться над этим так:
var getCurrentPositionCalled = false;
navigator.geolocation.getCurrentPosition = function() {
getCurrentPositionCalled = true;
};
//Your app code here
//...
assert(getCurrentPositionCalled);
Ответ 6
Я подключил Google Latitude к геолокации Firefox. Это позволяет вам вручную обновлять свое местоположение в Google Локаторе одним щелчком мыши, вместо того, чтобы самостоятельно искать свою широту и долготу и вводить их в локальный файл. Моя статья на эту тему Сделать Firefox использовать геолокацию из широты Google.
Решение потребовало небольшого количества серверного кодирования (я предоставляю исходный код в статье), но в настоящее время я использую этот код как бесплатную живую услугу, которую вы можете использовать.
Приветствия, MetaEd
Ответ 7
Я создал простое веб-приложение, которое служит конечной точкой геолокации, которую вы можете указать браузеру geo.wifi.uri. Он совместим со спецификацией API Google. Чтобы использовать его, просто введите следующее, заменив [широту] и [долготу] на нужные значения:
http://geolocation-mocker.phitherek.me/geolocate/[latitude]/[longitude]
и он должен работать. Чтобы проверить, работает ли служба, перейдите к
http://geolocation-mocker.phitherek.me
и проверьте правильность отображения страницы HTML. Исходный код этого простого приложения можно найти в
https://github.com/Phitherek/geolocation-mocker
Я надеюсь, что этот инструмент окажется полезным.