HTML5 Geolocation API дает возможность пользователям обмениваться информацией о их местоположении (координаты долготы и широты в браузере) в веб-приложениях.
Для этого пользователь должен разрешить возможность определения своего расположения.
Geolocation API поддерживается большеством современных браузеров: Firefox 3.5+, Opera 10.6+, Chrome 5+, Safari 5+ и Internet Explorer 9+.
В этой заметке я расскажу как использовать эту возможность с различными API карт.
Первое, Вы должны проверить поддерживает или нет HTML5 Geolocation API браузер пользователя.
Это можно сделать с помощью кода:
<script type="text/javascript"> if(navigator.geolocation) { alert("Geolocation API поддерживается"); } else { alert("Geolocation API не поддерживается в вашем браузере"); } </script> |
Определить местоположение пользователя можно, используя следующий код:
navigator.geolocation.getCurrentPosition(function(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; } |
Соединим два примера кода в один, получим простейший пример определения положения пользователя:
<!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>HTML5 Geolocation API</title> <script type="text/javascript"> if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; alert(latitude+' '+longitude); }); } else { alert("Geolocation API не поддерживается в вашем браузере"); } </script> </head> <body> <p>Пример определения местоположения пользователя - HTML5 Geolocation API</p> </body> </html> |
При просмотре примера в верху окна браузера может появиться информационная панель вида:
Нужно разрешить сообщить местоположение.
Тогда мы увидим окно с координатами
Информативней, если местоположение будет сразу показано на карте.
Рассмотрим как это можно сделать, используя различные API карт (Google, Bing , Nokia Maps, Яндекс.Карты и OpenStreetMap).
1. Пример с использованием API Яндекс.Карт
2. Пример с использованием API Google Maps
3. Пример с использованием API Bing Maps
4. Пример с использованием API Nokia Maps
5. Пример с использованием OpenStreetMap и библиотеки Leaflet
6. Пример с использованием OpenStreetMap и API Яндекс.Карт
Загрузить архив с файлами примеров
Для написания заметки использовалась статья: «Using HTML5 Geolocation API with Google, Bing and Nokia Maps».
А как с помощью данной функции реализовать поиск ближайшего магазина (всего их ~30) в зависимости от местонахождения юзера?
Интересует ответ на вопрос, аналогичный комментарию выше, только интересуют не магазины, а учреждения для досуга. Хотелось бы чтобы пользователь мог видеть, какие места для отдыха находятся, например в радиусе 500 метров от его местоположения.
А название города из каких API карт легче выдернуть. чтобы показывать информацию для нужного города?
статья окончательно устарела, жаль, что вторая в выдаче