sql >> Database >  >> RDS >> Sqlserver

Hoe krijg ik de grenscoördinaten voor een Amerikaanse postcode?

Een uitwerking van mijn opmerking, dat postcodes geen polygonen zijn....

We denken vaak aan postcodes als gebieden (polygonen) omdat we zeggen:"Oh, ik woon in deze postcode..." die de indruk wekt van een bevattende regio, en misschien het feit dat ZIP staat voor "Zone Verbeterplan" helpt de valse associatie met polygonen.

In werkelijkheid zijn postcodes lijnen die in zekere zin de routes van postvervoerders vertegenwoordigen. Geometrisch gezien hebben lijnen geen oppervlakte. Net zoals lijnen reeksen punten langs een coördinatenvlak zijn, zijn postcodelijnen reeksen van afleverpunten in de abstracte ruimte van door USPS aangewezen adressen.

Ze zijn niet gecorreleerd met geografische coördinaten. Wat je echter zult vinden, is dat ze verschijnen om geografisch georiënteerd te zijn, omdat het voor vervoerders inefficiënt zou zijn om een ​​route te hebben die totaal irrelevant is voor afstand en locatie.

Wat is deze "abstracte ruimte van door USPS aangewezen adressen"? Zo beschrijf ik de grote en mysterieuze database van afleverbare locaties die wordt onderhouden door de US Postal Service. Adressen worden niet toegewezen op basis van geografie, maar op de routes die vervoerders reizen, wat meestal te maken heeft met straten en berijdbaarheid.

Sommige 5-cijferige postcodes zijn slechts een enkel gebouw, of een complex van gebouwen, of zelfs een enkele verdieping van een gebouw (ja, meerdere postcodes kunnen op een enkele coördinaat staan ​​omdat hun leveringspunten verticaal gelaagd zijn). Sommige hiervan - onder andere - zijn "unieke" ZIP's. Bedrijven en universiteiten krijgen vaak hun eigen postcodes voor marketing- of organisatorische doeleinden. De postcode "12345" is bijvoorbeeld van General Electric in Schenectady, NY. (Bewerken:in een eerdere versie van Google Maps, als je die link volgde, zou je merken dat de plaatsingsmarkering zweefde, omdat deze naar een postcode verwijst, wat geen coördinaat is. Terwijl de meeste Amerikaanse postcodes werden weergegeven een regio op Google Maps, kunnen deze typen dat niet omdat de USPS ze bij wijze van spreken niet "bezit", en ze hebben geen gebied.)

Laten we voor de lol eens proberen een adres te verifiëren in een unieke postcode. Ga naar SmartyStreets en voer een nepadres in in 12345, zoals:

Straat: 999 Sdf-sdf

Postcode: 12345

Wanneer je dat probeert te verifiëren, merk dan op dat... het GELDIG is! Waarom? De USPS zal een stuk afleveren bij de ontvanger voor die unieke postcode, maar op dat moment is het aan GE om het te distribueren. Vrijwel alles wat binnen de postcode valt, is niet relevant voor de USPS, inclusief het adres (technisch gezien "leveringsregel 1"). Veel universiteiten functioneren op een vergelijkbare manier. Hier is meer informatie over.

Probeer nu hetzelfde valse adres, maar zonder postcode, en voer in plaats daarvan de stad/staat in:

Straat: 999 Sdf-sdf

Stad: Schenectady

Status: NY

Het valideert niet. Dit komt omdat hoewel Schenectady 12345 bevat, waar het adres "geldig" is, het geometrisch de "echte" postcodes voor Schenectady kruist.

Neem een ​​ander voorbeeld:het leger. Bepaalde marineschepen hebben hun eigen postcodes. Militaire adressen zijn een geheel andere klasse van adressen die dezelfde naamruimte gebruiken . Schepen bewegen. Geografische coördinaten niet.

ZIP-precisie is een andere leuke. 5-cijferige postcodes zijn het minst "precies" (hoewel de term "specifiek" hier zinvoller kan zijn, aangezien postcodes niets aangeven). ZIP-codes van zeven en negen cijfers zijn het meest specifiek, vaak tot op blok- of buurtniveau in stedelijke gebieden. Maar aangezien elke postcode een ander formaat heeft, is het heel moeilijk om te zien over welke werkelijke afstanden u praat.

Een 9-cijferige postcode kan worden verdeeld over een verdieping van een gebouw, dus daar heb je overlappende postcodes voor mogelijk honderden adressen.

Kortom:postcodes bieden, in tegenstelling tot wat vaak wordt gedacht, geen geografische of grensgegevens. Ze lopen sterk uiteen en zijn eigenlijk vrij nutteloos, tenzij je post of pakketten bezorgt... maar de taak van de USPS was om efficiënte koeriersroutes te ontwerpen, niet zozeer om de bevolking in gecoördineerde regio's te verdelen.

Dat is meer de taak van het volkstellingsbureau. Ze hebben een lijst met cartografische grenzen samengesteld, aangezien postcodes "handig" zijn om mee te werken. Om dit te doen, verdeelden ze bosjes adressen in volkstellingsblokken. Vervolgens aggregeerden ze USPS-postcodegegevens om de relatie te vinden tussen hun tellingsblokken (die enkele ruwe coördinaatgegevens bevatten) en de postcodes. We hebben dus benaderingen van hoe het eruit zou zien om een ​​lijn als een veelhoek uit te zetten. (Blijkbaar hebben ze een 1D-lijn omgezet in een 2D-polygoon door een 2D-polygoon op basis van de inhoud ervan te transformeren om in lineaire gegevens te passen -- voor elke niet-unieke, reguliere postcode.)

Van hun website (link hierboven):

Een ZIP Code-tabelgebied (ZCTA) is een statistische geografische entiteit die het bezorggebied voor een U.S. Postal Service-vijfcijferige of driecijferige postcode benadert. ZCTA's zijn verzamelingen van tellingsblokken die dezelfde overheersende postcode hebben die is gekoppeld aan de adressen in het Master Address File (MAF) van het U.S. Census Bureau. Driecijferige ZCTA-codes worden toegepast op grote aaneengesloten gebieden waarvoor het U.S. Census Bureau geen vijfcijferige ZIP heeft. Code-informatie in zijn MAF. ZCTA's geven niet precies de bezorggebieden van postcodes weer en bevatten niet alle postcodes die worden gebruikt voor postbezorging. Het U.S. CensusBureau heeft ZCTA's opgericht als een nieuwe geografische entiteit die lijkt op, maar vervangt, gegevenstabellen voor postcodes die zijn uitgevoerd in samenhang met de tellingen van 1990 en eerder.

De dataset van het USCB is onvolledig en soms onnauwkeurig. Google heeft ook nog steeds gaten in hun gegevens (de 12345 is een enigszins goed voorbeeld) -- maar Google zal het uiteindelijk patchen door elk adres en elke postcode met de hand te doorlopen. Ze doen dit al, maar hebben nog niet al hun kaartgegevens perfect gemaakt. Natuurlijk is de toegang tot deze gegevens beperkt tot API-voorwaarden, en het is erg duur om deze te verhogen.

Opluchting. Ik ben verslagen. Ik hoop dat dat helpt om dingen te verduidelijken. Disclaimer:ik was ontwikkelaar bij SmartyStreets. Meer informatie over geocodering met adresgegevens.

Nog meer informatie over postcodes.



  1. Omzeilen van fouten die niet overeenkomen met architectuur bij gebruik van Microsoft Access

  2. Fix “SQL Server blokkeerde toegang tot VERKLARING ‘OpenRowset/OpenDatasource’ van component ‘Ad Hoc Distributed Queries’

  3. Waarschuwing:mysqli_connect():(HY000/2002):Geen dergelijk bestand of map

  4. Is het mogelijk om een ​​string in MySQL uit te voeren?