Источник по умолчанию для геолокации в FF устанавливается в about:config
из параметра geo.wifi.uri в значение https://www.google.com/loc/json
.Когда стандартный вызов геолокации выполняется в Javascript, например, navigator.geolocation.getCurrentPosition (handle_geolocation_query, handle_errors);Firefox запросит https://www.google.com/loc/json
с моим IP-адресом (рабочий стол) и вернет мое приблизительное местоположение.
Что я хочу сделать, это настроить страницу на моем собственном сервере, которая возвращает определенную геолокацию ;Я буду жестко кодировать значение широты, долготы и точности, которое будет возвращено на мою страницу, которая вызывает getCurrentPosition.Это позволит мне тестировать код для клиента в разных местах без необходимости идти в эти физические места для тестирования.
Вот моя проблема: в каком формате я могу создать свою страницу, чтобы она возвращала действительную структуру /объект, который может использовать FF.
Страница размещена на Apache и будет сгенерирована из PHP.
В этом примере предположим, что моя страница псевдогеолокации находится на http://mysite/json/index.php
.
Я попробовал это с помощью следующего кода PHP:
header('Content-type: application/json');
echo '{"position":'
. '{"coords":'
. '{'
. '"latitude":"80",'
. '"longitude":"-20",'
. '"altitude":"299",'
. '"accuracy":"111",'
. '"altitudeAccuracy":"222",'
. '"heading":"333",'
. '"speed":"44"'
. '}'
. '}'
. '}';
На моей странице вызова у меня есть следующий javascript:
function initiate_geolocation() {
navigator.geolocation.getCurrentPosition(handle_geolocation_query,handle_errors);
}
function handle_geolocation_query(position){
var foo = 'Lat: ' + position.coords.latitude + "\n"
+ 'Lon: ' + position.coords.longitude + "\n"
+ 'Alt: ' + position.coords.altitude + "\n"
+ 'Acc: ' + position.coords.accuracy + "\n"
+ 'AAc: ' + position.coords.altitudeAccuracy + "\n"
;
alert(foo);
}
function handle_errors(error) {
switch(error.code) {
case error.PERMISSION_DENIED: alert("user did not share geolocation data");
break;
case error.POSITION_UNAVAILABLE: alert("could not detect current position");
break;
case error.TIMEOUT: alert("retrieving position timed out");
break;
default: alert("unknown error");
break;
}
}
с geo.wifi.uri, установленным в https://www.google.com/loc/json
Я получаю свои данные, точность и точность, как и ожидалось.Когда я изменяю geo.wifi.uri на http://mysite/json
или http://mysite.json/index.php
, я не получаю очевидного ответа, в том числе не выполняю раздел ошибки в javascript.
Я предполагаю, что ответ находится в geolocation-API , но я не могу понять, когда все, что я действительно хочу, это вернуть правильно отформатированную информацию.
Любая помощь по этому вопросу будет оценена.
TL;DR: что требуется для генерации правильного ответа для geo.wifi.uri в качестве альтернативы https://www.google.com/loc/json
?