Я экспериментирую с геолокацией HTML5 и встроил небольшой тестовый скрипт в страницу, чтобы вернуть мои нынешние координаты.
Текущее приложение, которое я собираюсь использовать для этого, - это функция «приятно иметь» на сайте, над которым я работаю - она включает в себя поиск «найди мой ближайший» в некоторых местах, и я подумал, что если у вас есть устройство, учитывающее местоположение, я мог бы легко включить «в мое текущее местоположение» наряду с обычным «в мой почтовый индекс». Я не заинтересован в загрузке нескольких дополнительных библиотек и запасных вариантов для такой маленькой и несущественной функции. Если у вас есть способное устройство, отлично, если нет, вы никогда не увидите вариант.
Итак, я попробовал скрипт на iPad, и, как и ожидалось, меня попросили разрешить использовать мое текущее местоположение, с которым я согласился, и мой тестовый скрипт вернул мое текущее местоположение. Общий выигрыш.
Я попробовал то же самое на своем рабочем столе, так как я использую Firefox 4 и его браузер, совместимый с HTML5. Он спросил меня, хочу ли я поделиться своим местоположением, а затем быстро вернул ошибку, что он не знал мое местоположение (потому что это настольный компьютер и не имеет GPS). Я думал, что это сделало исходный вопрос «Вы хотите поделиться своим местоположением» несколько бессмысленным - это могло бы излишне раздражать людей, которые, возможно, думали, что могли бы использовать функцию, которую они на самом деле не могут.
Итак, что такое надежный метод для обнаружения, если:
a) Браузер может получить доступ к геолокации HTML5
И
b) Браузер знает или может узнать, где находится пользователь.
Без фактического вызова функции геолокации заранее и не задавать пользователю раздражающий и ненужный вопрос?
Для а) я просто использую:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showCoords,handleGeoErrors);
}
Но для б) единственный ответ, который у меня есть, связан с вызовом getCurrentPosition, который вызывает вопрос пользователю.
Есть какие-нибудь мысли по этому поводу, кто-нибудь?