Как получить ограничивающие координаты для почтового (почтового) кода США?

Есть ли служба /API, которая будет принимать почтовый/почтовый код и возвращать граничные (периметрические) координаты, чтобы я мог построить объект Geometry в базе данных MS SQL?

Ограничивая координаты, я имею в виду, что я хотел бы получить список координат GPS, которые строят многоугольник, который определяет почтовый индекс США.

Ответы

Ответ 1

Уточнение моего комментария, что почтовые индексы не являются полигонами....

Мы часто думаем о почтовых индексах как об областях (многоугольниках), потому что мы говорим: "О, я живу в этом почтовом индексе...", что создает впечатление ограниченного региона, и, возможно, тот факт, что ZIP означает "План улучшения зоны" помогает ложная ассоциация с полигонами.

В действительности, почтовые индексы - это строки, которые в некотором смысле представляют маршруты почтовых перевозчиков. Геометрически линии не имеют площади. Так же, как линии - это строки точек вдоль координатной плоскости, строки кода ZIP - это строки точек доставки в абстрактном пространстве адресов, определенных USPS.

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

Что это за "абстрактное пространство адресов, назначенных USPS"? Вот как я описываю большую и таинственную базу данных о доставляемых местоположениях, которую ведет Почтовая служба США. Адреса распределяются не на основе географии, а на маршрутах, по которым перевозчики перевозят пассажиров, что обычно связано с улицами и транспортными возможностями.

Некоторые пятизначные почтовые индексы представляют собой только одно здание, или комплекс зданий, или даже один этаж здания (да, несколько почтовых индексов могут быть по одной координате, поскольку их точки доставки расположены по вертикали). Некоторые из них - среди прочих - являются "уникальными" почтовыми индексами. Компании и университеты часто получают свои собственные почтовые индексы для маркетинговых или организационных целей. Например, почтовый индекс "12345" принадлежит компании General Electric в Скенектади, штат Нью-Йорк. (Редактировать: в предыдущей версии Google Maps, переходя по этой ссылке, вы заметили, что маркер размещения завис, поскольку он указывает на почтовый индекс, который не является координатой. Хотя большинство почтовых индексов США использовалось для отображения область в Google Maps, эти типы не могут, потому что USPS не "владеет" ими, так сказать, и у них нет области.)

Просто для удовольствия, давайте попробуем проверить адрес в уникальном почтовом индексе. Отправляйтесь на SmartyStreets и наберите фиктивный адрес в 12345, например:

Улица: 999 Sdf sdf

Индекс: 12345

Когда вы попытаетесь это проверить, обратите внимание, что... это ДЕЙСТВИТЕЛЬНО! Зачем? USPS доставит кусок в розетку для этого уникального почтового индекса, но в этот момент, его до GE, чтобы распространить его. Практически все, что находится внутри почтового индекса, не имеет отношения к USPS, включая адрес улицы (технически "линия доставки 1"). Многие университеты функционируют аналогичным образом. Здесь больше информации об этом.

Теперь попробуйте тот же поддельный адрес, но без почтового индекса, и вместо этого сделайте город/штат:

Улица: 999 Sdf sdf

Город: Скенектади

Штат: Нью-Йорк

Это не подтверждает. Это потому, что, хотя Schenectady содержит 12345, где адрес является "действительным", он геометрически пересекается с "реальными" почтовыми индексами для Schenectady.

Возьмите другой пример: военные. Некоторые военно-морские корабли имеют свои собственные почтовые индексы. Военные адреса - это совершенно другой класс адресов, использующих одно и то же пространство имен. Корабли движутся. Географические координаты нет.

Точность ZIP - еще один интересный. 5-значные почтовые индексы являются наименее "точными" (хотя термин "специфический" может быть здесь более значимым, поскольку почтовые индексы ничего не определяют). 7- и 9-значные почтовые индексы являются наиболее конкретными, часто вплоть до городских или городских кварталов. Но поскольку каждый почтовый индекс имеет свой размер, очень сложно определить, на каком реальном расстоянии вы говорите.

9-значный почтовый индекс может быть разделен на этаж здания, поэтому у вас есть перекрывающиеся почтовые индексы для потенциально сотен адресов.

Итог: почтовые индексы, вопреки распространенному мнению, не предоставляют географические или граничные данные. Они сильно различаются и на самом деле совершенно бесполезны, если вы не доставляете почту или посылки... но задача USPS заключалась в том, чтобы разрабатывать эффективные маршруты перевозчиков, а не так сильно разделять население на координационные регионы.

Это больше работа бюро переписей. Они составили список картографических границ, поскольку почтовые индексы "удобны" для работы. Для этого они разбили группы адресов на блоки переписи. Затем они агрегировали данные почтового индекса USPS, чтобы найти связь между своими блоками переписи (в которой есть некоторые приблизительные данные координат) и почтовыми кодами. Таким образом, у нас есть приблизительные значения того, как будет выглядеть линия в виде многоугольника. (Очевидно, они преобразовали 1D линию в 2D многоугольник, преобразовав 2D многоугольник на основе его содержимого, чтобы соответствовать линейным данным - для каждого неуникального, регулярного почтового индекса.)

С их сайта (ссылка выше):

Область табулирования почтового индекса (ZCTA) представляет собой статистический географический объект, который приблизительно соответствует области доставки почтового индекса США из пяти или трех цифр. ZCTA - это совокупности блоков переписи, которые имеют один и тот же преобладающий почтовый индекс, связанный с адресами в основном файле адресов Бюро переписей США (MAF). Трехзначные коды ZCTA применяются к крупным смежным территориям, для которых Бюро переписей США не имеет пятизначную информацию о почтовых индексах в своем MAF. ZCTA точно не отображают области доставки почтовых индексов и не включают все почтовые индексы, используемые для доставки почты. Бюро переписей США создало ZCTA как новую географическую единицу, аналогичную, но заменяющую таблицы данных для почтовых индексов, проведенную в связи с переписями 1990 года и более ранними.

Набор данных USCB неполный, а иногда и неточный. У Google все еще есть дыры в их данных (12345 - несколько хороший пример), но Google в конечном итоге исправит это, просматривая каждый адрес и почтовый индекс вручную. Они уже делают это, но еще не сделали все свои картографические данные идеальными. Естественно, доступ к этим данным ограничен условиями API, и их получение очень дорого.

Уф. Я победил. Я надеюсь, что это помогает прояснить ситуацию. Отказ от ответственности: я был разработчиком на SmartyStreets. Подробнее о геокодировании с адресными данными.

Еще больше информации о почтовых индексах.

Ответ 2

То, о чем вы просите, это услуга по предоставлению "бесплатного геокодирования почтового индекса". Есть несколько вариантов с различным качеством. У вас будет плохое кодирование чего-то подобного из-за нескольких причин:

  • Почтовые индексы могут быть назначены одному зданию или почтовому отделению.
  • Почтовые индексы НЕ считаются полигональной областью. Проецирование почтовых кодов на многоугольную область потребует от вас обоснованного предположения, где граница находится между одним почтовым индексом и следующим.
  • Данные адреса почтового индекса указывают только центральное расположение почтового индекса. Данные почтового индекса обеспечивают общую близость адреса. Почтовые адреса, которые существуют между одним почтовым индексом и другим, могут быть спорными о том, какой почтовый индекс он фактически находится.
  • Почтовый адрес может быть физически ближе к zipcode 11111, но его официальный почтовый индекс является более отдаленной точкой 11112 почтового индекса.

Google Maps имеет API геокодирования:

API-интерфейс google - это клиентский javascript. Вы можете напрямую запросить систему геокодирования с php, используя http-запрос. Однако карты google дают только то, что дает им Почтовая служба Соединенных Штатов. Точка, представляющая центр zipcode.

https://developers.google.com/maps/#Geocoding_Examples

отображать полигоны города /zipcode с помощью карт Google

Мысли о проецировании zipcode в его ограничивающий прямоугольник lat/long

В США насчитывается около 43 000 ZIP-кодов. Это число колеблется от месяца к месяцу, в зависимости от количества внесенных изменений. Zipcodes, используемые USPS, не представлены как многоугольники и не имеют жестких и быстрых границ.

USPS (Почтовая служба США) - это орган, определяющий каждый zipcode lat/long. Любое программное обеспечение, которое разрешает zip-код для географического местоположения, будет нуждаться в еженедельных обновлениях. Одна компания под названием alignstar предоставляет демографические данные и данные ГИС для почтовых индексов (http://www.alignstar.com/data.html).

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

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

http://vterrain.org/Culture/geocoding.html

Если вы должны были бросить миллионы почтовых адресов в алгоритм, разрешающий каждый из них на lat/long, вы могли бы создать рудиментарный ограничивающий прямоугольник этого zipcode. Вам придется повторно запустить этот алгоритм, и он теоретически будет исцелять себя всякий раз, когда числа zipcode перемещаются.

Другие идеи

http://shop.delorme.com/OA_HTML/DELibeCCtpSctDspRte.jsp?section=10075

http://www.zip-codes.com/zip-code-map-boundary-data.asp

Ответ 3

Я думаю, что это то, что вам нужно, оно использует US Census в качестве репозитория: US Zipcode Boundaries API: https://www.mashape.com/vanitysoft/boundaries-io

Над API показывает границы США (GeoJson) по zipcode, city и state. вы должны использовать API программно для обработки больших результатов.

enter image description here

Ответ 4

Я думаю, что мировая ссылка geoJson и геокодирование google google могут помочь вам. Например: вы можете использовать geocode api для кодирования zip, вы получите город, штат, страну, затем вы выполните поиск из world и us geoJson получить границу, у меня есть пример государственной границы США, например dsdlink