Например, если у нас есть этот набор координат
"latitude": 48.858844300000001,
"longitude": 2.2943506,
Как узнать город / страну?
geolocation
geocoding
geospatial
geo
мин да
источник
источник
Ответы:
Бесплатный API Google Geocoding предоставляет эту услугу через HTTP REST API. Обратите внимание: использование и скорость API ограничены , но вы можете заплатить за неограниченный доступ.
Попробуйте эту ссылку, чтобы увидеть пример вывода (это в json, вывод также доступен в XML)
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
источник
Другой вариант:
Преимущества:
Недостатки:
источник
Тебе нужно
geopy
а потом:
чтобы получить дополнительную информацию:
источник
Альтернативой с открытым исходным кодом является Nominatim от Open Street Map. Все, что вам нужно сделать, это установить переменные в URL-адресе, и он вернет город / страну этого местоположения. Пожалуйста, проверьте следующую ссылку для получения официальной документации: Nominatim
источник
Я искал аналогичную функциональность и увидел данные « http://download.geonames.org/export/dump/ », опубликованные в предыдущем ответе (спасибо, что поделились, это отличный источник), и реализовал сервис на основе по данным cities1000.txt.
Вы можете увидеть, как это работает
http://scatter-otl.rhcloud.com/location?lat=36&long=-78.9(битая ссылка) Просто измените широту и долготу вашего местоположения.Развернут на OpenShift (платформа RedHat). Первый вызов после длительного периода бездействия может занять некоторое время, но обычно производительность удовлетворительная. Не стесняйтесь пользоваться этой услугой как хотите ...
Также вы можете найти исходный код проекта по адресу https://github.com/turgos/Location .
источник
Я использовал Geocoder , хорошую библиотеку Python, которая поддерживает несколько поставщиков, включая Google, Geonames и OpenStreetMaps, и это лишь некоторые из них . Я пробовал использовать библиотеку GeoPy, и она часто дает таймауты. Разработка собственного кода для GeoNames - не лучшее использование вашего времени, и вы можете получить нестабильный код. По моему опыту, геокодер очень прост в использовании и имеет достаточно хорошую документацию. . Ниже приведен пример кода для поиска города по широте и долготе или поиска широты / долготы по названию города.
источник
geocoder
, то и сам хочу попробовать!Я потратил около 30 минут, пытаясь найти пример кода, как это сделать в Javascript. Я не смог найти четкого ответа на поставленный вами вопрос. Итак ... Я сделал свой собственный. Надеюсь, люди смогут использовать это, не копаясь в API или не глядя на код, который они не знают, как читать. Ха, если уж на то пошло, я могу сослаться на этот пост для своего собственного материала .. Хороший вопрос и спасибо за обсуждение на форуме!
Это использует API Google.
.
источник
Я знаю, что этот вопрос действительно старый, но я работал над той же проблемой и нашел чрезвычайно эффективный и удобный пакет
reverse_geocoder
, созданный Аджаем Темпи. Код доступен здесь . Он основан на распараллеленной реализации деревьев KD, что чрезвычайно эффективно для большого количества точек (мне потребовалось несколько секунд, чтобы получить 100000 точек.Это основано на этом базе данных, уже выделенной @turgos.
Если ваша задача - быстро найти страну и город по списку координат, это отличный инструмент.
источник
Это действительно зависит от того, какие технологические ограничения у вас есть.
Один из способов - иметь пространственную базу данных с контуром интересующих вас стран и городов. Под контуром я подразумеваю, что страны и города хранятся как многоугольники пространственного типа. Ваш набор координат можно преобразовать в точку пространственного типа и запросить у полигонов, чтобы получить название страны / города, в котором расположена точка.
Вот некоторые из баз данных, которые поддерживают пространственный тип: SQL server 2008 , MySQL , postGIS - расширение postgreSQL и Oracle .
Если вы хотите использовать сервис вместо собственной базы данных, вы можете использовать Yahoo GeoPlanet . Что касается сервисного подхода, вы можете проверить этот ответ на gis.stackexchange.com , который описывает доступность сервисов для решения вашей проблемы.
источник
Вы можете использовать Google Geocoding API
Bellow - это функция php, которая возвращает адрес, город, штат и страну
источник
Если вы используете Google Places API, вот как вы можете получить страну и город из объекта места с помощью Javascript:
источник
Loc2country - это инструмент на основе Golang, который возвращает код страны ISO alpha-3 для заданных координат местоположения (широта / долгота). Он отвечает за микросекунды. Он использует геохеш для карты страны.
Данные геохеша генерируются с помощью геораптора .
Мы используем геохеш на уровне 6 для этого инструмента, то есть коробки размером 1,2 км x 600 м.
источник
Минимизируйте количество библиотек.
Получите ключ для использования API на своем веб-сайте и просто получите результат в http-запросе:
curl -i -H "ключ: ВАШ_КЛЮЧ" -X ПОЛУЧИТЬ https://api.latlong.dev/lookup?lat=38.7447913&long=-9.1625173
источник
Пожалуйста, проверьте ответ ниже. Меня устраивает
источник