#javascript #google_maps_api #yandex_maps_api #геолокация
Есть интернациональный проект. При совершении пользователем определенных действий, необходимо получать данные о его местоположении (страна, город, улица(если возможно)), и после уже отсылаем эти данные на наш сервер. Я видел примеры от гугл и яндекс карт, там можно получить координаты. Я все же более склонен к использованию гугла. Есть ли пример получения этих данных при этом сделав как можно меньше запросов? P.S. При этом мне не нужно что-либо отрисовывать на карте и рисовать саму карту
Ответы
Ответ 1
Силами HTML5 — navigator.geolocation.getCurrentPosition(). Браузер спрашивает у пользователя разрешение и в случае согласия отдает ОЧЕНЬ (в большинстве случаев) точные данные в виде широты и долготы. Потом это можно скормить https://developers.google.com/maps/documentation/geocoding/intro без карты. upd 2018: данный способ работает для https-сайтов Определять по IP. Есть бесплатная (но не самая полная) база — https://dev.maxmind.com/ru/geolite2/ Вот есть библиотека под нее — https://github.com/maxmind/GeoIP2-php В этом случае данные доступны сразу, но они не точные (Страна, город).Ответ 2
Если на js, могу дать совет воспользоваться запросом, на сторонний сервис, после чего получить json данные с него, через jsonp. На codepen: https://codepen.io/AndreyMyP/pen/gzXVXVОтвет 3
Яндекс, кстати, предоставляет "API Geocoder" для HTTP запросов: https://tech.yandex.ru/maps/doc/geocoder/desc/concepts/input_params-docpage/ Ответ геокодера может быть сформирован в следующих форматах: XML, согласно спецификации YMapsML; JSON или JSONP. Чтобы начать работать с HTTP API Геокодера, нужно получить ключ для пакета «JavaScript API и HTTP Геокодер». Но есть ограничение на кол-во бесплатных запросов 25тыс в сутки. И определенные условия, например проект должен находиться в открытом доступе, т.е. если есть регистрация, то она должна быть открыта для всех.
Комментариев нет:
Отправить комментарий