Поиск города и почтового индекса для местоположения

StackOverflow https://stackoverflow.com/questions/30962

Вопрос

Учитывая широту и долготу, какой самый простой способ найти название города и почтовый индекс США этого местоположения?

(Это похоже на https://stackoverflow.com/questions/23572/latitude-longitude-database, за исключением того, что я хочу преобразовать в противоположном направлении.)


Связанный с этим вопрос: Получить уличный адрес в паре лат/длина

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

Решение

Это веб-служба, которую нужно вызвать.http://developer .yahoo.com/search/local/V2/localSearch.html

На этом сайте есть нормальные веб-сервисы, но не совсем то, о чем вы здесь просите.http://www.usps.com/webtools/

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

Любой из упомянутых онлайн-сервисов и их конкуренты предлагают "обратное геокодирование", которое выполняет то, что вы просите - преобразует координаты lon / lat в какой-то уличный адрес.

Если вам нужны только почтовые индексы и / или города, то я бы получил базу данных почтовых индексов и базу данных городских районов в Бюро переписи населения США, которая БЕСПЛАТНА (оплачивается вашими налоговыми долларами). http://www.census.gov/geo/www/cob/zt_metadata.html.

Оттуда вы можете либо разработать свой собственный алгоритм поиска пространственных данных, либо воспользоваться одной из пространственных баз данных, таких как Microsoft SQL Server, PostGIS, Oracle Spatial, ArcSDE и т.д.

Обновить:С данными переписи населения 2010 года можно ознакомиться по адресу:http://www2.census.gov/census_2010/

У вас есть два основных варианта:

Используйте службу обратного Геокодирования

  • Google можно использовать только в сочетании со встроенной картой Google на той же странице, поэтому я не рекомендую использовать ее, если только это не то, что вы делаете.
  • У Yahoo есть хороший вариант, смотрите http://developer .yahoo.com/search/local/V3/localSearch.html
  • Я не пользовался OpenStreetMap.Их карты выглядят очень подробными и проработанными и всегда становятся лучше, но я бы беспокоился о задержке и надежности, а также о том, являются ли их адресные данные полными (адресные данные не отображаются непосредственно на карте, а OpenStreetMap - это в первую очередь интерактивная карта).

Используйте карту почтовых индексов

Перепись населения США публикует карту почтовых индексов США здесь.Они строят это на основе своей наименьшей статистической единицы, блока переписи, который в большинстве случаев соответствует городскому кварталу.Для каждого блока они находят, какой почтовый индекс наиболее распространен в этом блоке (большинство блоков имеют только один почтовый индекс, но блоки вблизи границы между почтовыми индексами могут иметь более одного).Затем они объединяют все блоки с заданным почтовым индексом в единую область, называемую областью табуляции почтовых индексов.Они публикуют карту этих областей в формате шейп-файла ESRI.

Я знаю об этом, потому что я написал библиотеку Java и веб-сервис, который (среди прочего) использует эту карту для возврата почтового индекса для заданной широты и долготы.Это коммерческий продукт, поэтому он подойдет не всем, но он быстр, прост в использовании и решает эту конкретную проблему без API.Вы можете прочитать об этом продукте здесь:

http://askgeo.com/database/UsZcta2010

И обо всех ваших географических предложениях здесь:

http://askgeo.com

В отличие от решений обратного геокодирования, которые доступны только в виде веб-API, поскольку запустить ваш собственный сервис было бы чрезвычайно сложно, вы можете запустить эту библиотеку на своем собственном сервере и не зависеть от внешнего ресурса.

Если громкость ваших звонков в службу становится слишком высокой, вам определенно следует подумать о получении собственного набора почтовых данных.В большинстве случаев это предоставит всю необходимую вам информацию, и существует множество инструментов базы данных для индексации данных о местоположении (т.е.PostGIS для PostgreSQL).

Вы можете купить довольно недорогую подписку на zipcodes с информацией о широте и длине здесь: http://www.zipcodedownload.com/

Или обратное геокодирование Google

Ссылка

http://maps.google.com/maps/geo?output=xml&q ={0},{1}&ключ={2}&датчик=true&oe=utf8

где 0 - широта, 1 - долгота

geonames имеет обширный набор ws, который может справиться с этим (среди прочих):

http://www.geonames.org/export/web-services.html#findNearbyPostalCodes
http://www.geonames.org/export/web-services.html#findNearbyPlaceName

Другим поставщиком обратного геокодирования, который здесь еще не был указан, является Карта открытых улиц:вы можете использовать их Nominatim служба поиска.

OSM обладает (потенциально?) дополнительным бонусом, заключающимся в том, что он полностью доступен для редактирования пользователем (вики-подобный) и, таким образом, имеет очень либеральную схему лицензирования всех этих данных.Подумайте об этом о картографических данных с открытым исходным кодом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top