Подтвердить что ты не робот

Библиотеки геокодирования

Я использую python, и мне нужно сопоставить местоположения, такие как "Bloomington, IN", с координатами GPS, чтобы я мог измерять расстояния между ними. Какие библиотеки /API для геокодирования вы рекомендуете? Решения на других языках также приветствуются.

4b9b3361

Ответ 1

API Карт Google поддерживает геокодирование, а в поваренной книге Python есть простая , чтобы получить доступ к нему из Python (хотя рецепт не использует API напрямую, просто URL-адреса maps.google.com).

Ответ 2

Geopy позволяет выбирать из нескольких геокодеров (включая Google, Yahoo, Virtual Earth).

Ответ 3

Веб-сервис Google очень прост в использовании. Просто поместите запрос в URL. Чтобы сделать это еще проще/ленивее, я бесстыдно рекламирую pygeocoder, оболочку Python для геокодирования Google. Тогда вы можете просто сделать что-то вроде

print Geocoder.geocode("Montreal, Canada")[0].coordinates

чтобы получить кортеж с координатами. Вы также можете делать такие вещи, как

Geocoder.geocode("sushi, San Francisco").count

или

Geocoder.geocode("sushi, San Francisco")[0].postal_code

Ответ 4

Как у Google, так и у Microsoft есть API, к которым очень легко подключиться. Есть некоторые ограничения, но они довольно щедры. Вы также можете посмотреть http://geocoder.us/. Я не знаю о каких-либо бесплатных сервисах геокодирования, которые бы ни были хорошими (и я потратил время на поиск!)

Ответ 5

Вы можете посмотреть GeoLite City. Это бесплатно (GPL), но они говорят, что это не самый точный.

Более 99,5% на уровне страны и 79% на уровне города для США в радиусе 25 миль

Это все равно может подойти вам, в зависимости от ваших потребностей.

Ответ 6

Вы можете использовать веб-API, например google maps, чтобы найти координаты. Тогда, если вам просто нужно вычислить расстояния (в прямой линии), существует формула, которую вы можете применить для получения точных результатов.

Ответ 7

USC WebGIS Geocoder (https://webgis.usc.edu) является бесплатным. Он имеет API, который вы можете вызывать из сценариев, или вы можете загружать и обрабатывать базы данных (mdb, csv и т.д.). Уровни точности зависят от того, где находятся ваши адреса. Например, в Лос-Анджелесе имеются центроиды посылок, а в других частях страны - только TIGER/Lines. В настоящее время карта покрытия исходных источников данных недоступна, но находится в разработке. Предполагается, что базовые инструменты будут открытыми в будущем, как только будет завершена еще одна разработка.

Ответ 8

На днях я встретил http://www.geonames.org/. Фактически вы можете загружать все данные для почтовых индексов, включая lat/long и т.д., Даже для коммерческого использования, чтобы сохранить необходимость подключения к внешним источникам. Я думаю, что вы можете сделать то же самое для имен городов (у данных почтового кода уже есть имена подкаталогов, связанных с ним).

Некоторые математические данные о нахождении расстояния "Как вороньи мухи" - прямые от точки к точке, можно найти здесь и здесь (пример .NET).

Ответ 9

Вы можете лучше посмотреть в модуле Geopy. И этого достаточно, чтобы использовать его, поскольку в нем содержится карта Google, геокодеры yahoo map, с помощью которых вы можете реализовать геокодирование.