Мне нужно разработать веб-приложение. (PHP) 100% для мобильных телефонов и нужно получить информацию с мобильного телефона GPS, чтобы получить текущую позицию пользователя. Мой вопрос: что мне делать?
Я знаю PHP, но я совершенно незнакомы относительно части GPS (никогда не работал с ними раньше). Все, что я ищу, – это хэдшоп, чтобы посмотреть, смогу ли я справиться с этой работой или просто отклонить ее.
Я слышал, что API геолокации W3 выполняет очень хорошую работу, но после тестирования я не уверен в точности и поддержке браузера. Я не хочу использовать механизмы Google из-за того, что он должен быть загружен первым.
Я действительно думаю, что W3C Geolocation API – это хорошее место для начала: оно все больше распространяется на мобильные телефоны, является открытым стандартом и абстрагирует все API-интерфейсы, специфичные для устройства.
Это правда, что точность может быть не идеальной, но это потому, что сам телефон не всегда может прекрасно знать, где он. API дает вам несколько способов обойти это: если вам нужна высокая точность, вы можете намекнуть на устройство, что вы хотите получить точный результат даже ценой мощности / времени с помощью enableHighAccuracy
и установить параметр длинного timeout
чтобы разрешить устройство для использования GPS для поиска местоположения. Кроме того, все позиции возвращаются с точностью до 95% -ной уверенности – если ошибка слишком высокая (часто телефоны возвращают высокую ошибку при первом запросе), вы можете снова запросить местоположение, указав, что вы не хотите место в кэше.
Это зависит от устройства, но некоторые платформы мобильных приложений сделали для вас всю работу и имеют расширения для этого, проверьте jqTouch для iPhone:
Более конкретно:
GPS-координаты доступны с javascript – поместите что-то подобное на загрузку страницы:
function locationHandler(location) { var lat = location.coords.latitude; var lng = location.coords.longitude; if(lat && lng) { // something clever goes in here } } if(typeof navigator.geolocation.getCurrentPosition == 'function') { navigator.geolocation.getCurrentPosition(locationHandler); }
где комментарий – это то, где вы хотите сделать что-то умное. вы можете заполнить значения форм или выполнить вызов ajax для сценария конца.
Ссылка, что с некоторыми обратного геокодирования от Google, и вы на победителя!
В зависимости от мобильного устройства у вас может быть доступ к GPS. Однако в широком спектре мобильных устройств вы, вероятно, не можете надежно получить его только из браузера устройства. Чтение IP-адресов было бы бесполезным, учитывая архитектуру сотовых сетей.
Это можно сделать, но вам нужно будет нарастить уровень деградации.