Вопрос

У меня есть база данных адресов, и я попытался найти широту и долготу, используя геокодирование Google и API Yahoo . Существуют ли какие-либо другие популярные API или программы. Я использую платформу Ubuntu.

Это было полезно?

Решение

Мне известна по крайней мере одна другая система геокодирования, OpenStreetMap . Единственное существенное различие, которое я обнаружил с любым из этих API - это уровень детализации каждого из них. OpenStreetMap содержит значительно меньше данных, но его гораздо проще интегрировать с пользовательскими данными. Кроме того, я думаю, что карты, созданные Google, являются самыми красивыми из трех.

Другие советы

Я обычно использовал службу геокодирования Карт Google по HTTP, которая возвращает вам Json или XML, как вам нравится. Просмотрите здесь для получения дополнительной информации об этом.

Другим вариантом может быть GeoNames.org . Он также предоставляет некоторые интересные сервисы и клиентские библиотеки.

С обоими из тех, о которых вы упомянули, если вы массово их обрабатываете или не показываете карту пользователю во время запроса API, вы нарушаете TOS.

Лучшим решением для удовлетворения ваших потребностей было бы что-то вроде LiveAddress . На самом деле я работаю в SmartyStreets , где мы сами его разрабатываем - нет никаких лицензионных ограничений, которые бы помешали вам запустить даже миллионы адресов. Помимо возврата координат, LiveAddress также проверит наличие адресов и стандартизирует их для вас. Это полезно для удаления дубликатов и имеет много деловых преимуществ.

Если у вас возникнут дополнительные вопросы, связанные с адресом, я с удовольствием помогу вам.

Вы также можете найти geocoder.us полезным.

Используя YQL, вы можете получить список возможных прогнозов. Первый шаг: Обратное геокодирование

SELECT woeid 
FROM geo.places 
WHERE text="##LATITUDE##, ##LONGITUDE##"

затем примените фильтр, чтобы упорядочить результаты по placeType. Это поможет вам упорядочить прогноз по точности уровня карты (город, город, почтовый индекс, регион, ....)

SELECT woeid 
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" | 
SORT(field="placeTypeName.code")

Теперь используйте simile join, чтобы получить все прогнозы по woeid, полученному в результате последнего запроса, и отфильтровать нулевые результаты

SELECT channel 
FROM weather.woeid 
WHERE w in (
    SELECT woeid 
    FROM geo.places 
    WHERE text="##LATITUDE##, ##LONGITUDE##" | 
    SORT(field="placeTypeName.code")) 
AND channel.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top