Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да получа граничните координати за пощенски (пощенски) код в САЩ?

Разработка на моя коментар, че пощенските кодове не са многоъгълници....

Често мислим за пощенските кодове като области (многоъгълници), защото казваме:„О, живея в този пощенски код...", което създава впечатлението за съдържащ регион и може би факта, че ZIP означава "Zone План за подобрение“ помага за фалшивата асоциация с полигони.

Всъщност пощенските кодове са редове, които представляват, в известен смисъл, маршрути на пощенски превозвач. Геометрично линиите нямат площ. Точно както линиите са низове от точки по координатна равнина, линиите с пощенски код са низове от точки за доставка в абстрактното пространство на адресите, определени от USPS.

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

Какво е това „абстрактно пространство от адреси, определени от USPS“? Ето как описвам голямата и мистериозна база данни с места за доставка, поддържана от Пощенската служба на САЩ. Адресите не се разпределят въз основа на географски признак, а въз основа на маршрутите, по които превозвачите пътуват, което обикновено е свързано с улиците и възможностите за пътуване.

Някои 5-цифрени пощенски кодове са само една сграда, или комплекс от сгради, или дори един етаж от сграда (да, множеството пощенски кодове могат да бъдат в една координата, защото точките им за доставка са наслоени вертикално). Някои от тях - наред с други - са "уникални" ZIP файлове. Компаниите и университетите често получават свои собствени пощенски кодове за маркетингови или организационни цели. Например, пощенският код "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 кодове се прилагат към големи съседни области, за които Бюрото за преброяване на САЩ няма петцифрен ZIP код Информация за кода в неговия MAF. ZCTA не изобразяват точно районите за доставка на пощенски код и не включват всички пощенски кодове, използвани за доставка на поща. Бюрото за преброяване на населението на САЩ установи ZCTAs като нов географски обект, подобен на, но заместващ, таблици с данни за пощенски кодове, предприети във връзка с преброяванията от 1990 г. и по-ранните.

Наборът от данни на USCB е непълен и понякога неточен. Google все още има дупки в данните си (12345 е донякъде добър пример) - но Google в крайна сметка ще го коригира, като преглежда всеки адрес и пощенски код на ръка. Те вече правят това, но все още не са направили всичките си картографски данни перфектни. Естествено, достъпът до тези данни е ограничен до термините на API и е много скъпо да ги изведем.

фу победен съм. Надявам се това да помогне да се изяснят нещата. Отказ от отговорност:Преди бях разработчик в SmartyStreets. Повече информация за геокодирането с адресни данни.

Още повече информация за пощенските кодове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Разлика между PARTITION BY и GROUP BY

  2. Преобразувайте „datetime“ в „time“ в SQL Server (T-SQL примери)

  3. Изчисляване на MD5 хеш на UTF8 низ

  4. SQL Server Database Change Listener C#

  5. Проактивни проверки на състоянието на SQL Server, част 1:Дисково пространство