Геокодирование нескольких адресов - PullRequest
17 голосов
/ 29 декабря 2008

Мне нужно геокодировать около 200 адресов на запрос и делать около 3000 запросов в день. Я буду делать это на стороне сервера, используя PHP. Я посмотрел на Как преобразовать адрес в широту / долготу? , но не смог найти способ ни для API запросов Google Maps HTTP, ни для API REST геокодирования Yahoo (нельзя использовать JavaScript, так как это на стороне сервера ) для отправки нескольких адресов.

Я буду использовать это в первую очередь для сортировки адресов по координатам, и, если API поддерживает, заполните все пропущенные данные для каждого адреса. Адреса будут только в Соединенных Штатах. Адреса для геокодирования будут вводиться пользователем, поэтому они должны быть в произвольной форме, например, "адрес улицы, почтовый индекс" или "город, штат" и т. Д. Точность не слишком важна для координат, скажем, в пределах пятисот футов или около того.

Существует ли бесплатный API для этого? Есть ли способ заставить Yahoo или Google использовать несколько местоположений в запросе?

Ответы [ 7 ]

20 голосов
/ 29 декабря 2008

Я посмотрел на API Карт Google, API Карт Yahoo, API MapQuest и API Microsoft Virtual Earth. Ни один из этих бесплатных сервисов не позволяет массовое геокодирование.

Но API Google Maps позволяет использовать 15 000 кодов в день. Но им не нравится, когда вы отправляете слишком много одновременно. Они предлагают подождать 200 мс между запросами. Они отслеживают вас по IP-адресу, кстати.

Yahoo позволяет 5000 в день, а также простой в использовании API. Microsoft Virtual Earth позволяет 5000 в день, но документация API - это боль в заднице.

MapQuest просто странный и, похоже, не дает хороших результатов (наименее точный из всех, что я видел).

Я на самом деле настроил свой код для чередования нескольких сервисов, чтобы я мог делать несколько запросов одновременно. Это - вроде - имитирует массовое кодирование.

6 голосов
/ 29 декабря 2008

geocoder.us будет делать то, что вы хотите, но у вас может быть та же проблема для массовых поисков. Они делают массовые поиски за плату, хотя.

Будет ли GeoNames предоставлять достаточную информацию либо через объемные необработанные данные, либо через их веб-службы ?

5 голосов
/ 08 февраля 2009

Геокодер USC WebGIS предлагает несколько API геокодирования , которые могут это сделать. Он бесплатный и позволяет выполнять поиск по партиям из вашего кода, или вы можете загрузить базу данных для пакетной обработки.

2 голосов
/ 08 января 2013

Посмотрите на http://www.torchproducts.com/tools/geocode, чтобы быстро геокодировать список адресов

2 голосов
/ 29 декабря 2008

Это может показаться странным, но я сделал сайт некоторое время назад, и клиент хотел, чтобы пользователь ввел только zip, и мы предоставили оставшиеся данные. Я использовал API погоды Yahoo, который в то время возвращал XML-файл со всеми данными о погоде, а ciy, штат, zip хорошо работал для адресов в США.

2 голосов
/ 29 декабря 2008

Mapquest имеет API, который позволяет пакетное геокодирование. Однако они не предоставляют один прямо для PHP. Но вы можете посмотреть их протокольную документацию http://developer.mapquest.com/Library/SDK_Documentation/Protocols, чтобы реализовать ее самостоятельно. Они могут относиться к массовому геокодированию как к коллекции местоположений в документах.

0 голосов
/ 07 мая 2009

Использование GDirections . Он позволяет использовать до 25 путевых точек одновременно и возвращает геокодированное местоположение для каждой из них.

...