Многочисленные адреса геокодирования
Мне нужно геокодировать около 200 адресов на запрос и делать около 3000 запросов в день. Я буду делать эту серверную часть с помощью PHP. Я просмотрел Как преобразовать адрес в широту/долготу?, но не смог найти способ для API запросов HTTP для Google Карт или API геокодирования Yahoo Geosystems ( не может использовать JavaScript, так как это серверная сторона) для отправки нескольких адресов.
В основном я буду использовать это для сортировки адресов на основе координат, и если API поддерживает, заполните все отсутствующие данные для каждого адреса. Адреса будут только в Соединенных Штатах. Адреса в геокод будут поступать от пользователя, так что будьте свободны, например "уличный адрес, почтовый индекс" или "город, штат" и т.д. Точность не слишком важна для координат, скажем, в пределах пятисот футов или около того.
Есть ли бесплатный API для этого? Есть ли способ заставить Yahoo или Google выполнять несколько запросов в запросе?
Ответы
Ответ 1
geocoder.us будет делать то, что вы хотите, но у вас может быть такая же проблема для массового поиска. Тем не менее, они проводят массовый поиск за плату.
Было бы GeoNames предоставлять достаточную информацию либо через объемные необработанные данные, либо через их веб-сервисы?
Ответ 2
Я просмотрел API Google Maps, API Yahoo Api, API MapQuest и API виртуальной земли Microsoft. Ни одно из этих бесплатных сервисов не позволяет массовое геокодирование.
Но, Google Maps api позволяет 15 000 goecodes в день. Но им это не нравится, когда вы отправляете слишком много за один раз. Они предлагают ждать 200 мс между запросами. Они отслеживают вас по IP-адресу btw.
Yahoo разрешает 5000 в день, а также легко использовать api.
Microsoft Virtual Earth позволяет 5000 в день, но документация api - это боль в прикладе.
MapQuest просто странный и, похоже, не дает хороших результатов (наименее точным из всего, что я видел).
Я действительно настроил свой код, чтобы чередовать несколько сервисов, поэтому я могу сделать несколько запросов одновременно. Это - тип - имитирует массовое кодирование.
Ответ 3
USC WebGIS Geocoder предлагает несколько API геокодирования, который может это сделать. Он бесплатный и позволяет пакетный поиск из вашего кода, или вы можете загрузить базу данных для пакетной обработки.
Ответ 4
Mapquest имеет API, который позволяет пакетное геокодирование. Однако они не предоставляют напрямую для PHP. Но вы можете найти свою протокольную документацию http://developer.mapquest.com/Library/SDK_Documentation/Protocols, чтобы реализовать ее самостоятельно. Они могут ссылаться на массовое геокодирование в виде коллекции местоположений в документах.
Ответ 5
Это может показаться странным, но я сделал сайт некоторое время назад, и клиент хотел, чтобы пользователь вводил только zip, и мы предоставили оставшиеся данные. Я использовал weather api yahoo, который в то время возвратил xml файл со всеми данными о погоде, а ciy, state, zip хорошо работал для адресов в США.
Ответ 6
Посмотрите http://www.torchproducts.com/tools/geocode, чтобы быстро скопировать список адресов
Ответ 7
Используйте GDirections. Он позволяет одновременно получать до 25 путевых точек и возвращает геокодированное местоположение для каждого из них.