Zone-informatie USPS-postcode

Ik probeer USPS Shipping Zone-informatie weer te geven, maar het gedeelte van de USPS-site waar ik deze informatie vandaan heb gehaald, is verbroken maanden en ik “vraag me af of iemand een andere manier weet om het in een parseerbaar formaat te krijgen?

De pagina die al maanden kapot is, is hier: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931

Ze hebben hetzelfde diagram in een niet-zo-parseerbare indeling hier: http://postcalc.usps.gov/Zonecharts/

Ik cacheer deze informatie, zodat het niet “constant opgevraagd hoeft te worden, maar het cachegeheugen wordt af en toe gewist omdat de zones veranderen van tijd tot tijd.

Answer

Hier is de code die ik gebruik om de JSON-gegevens op te halen die http://postcalc.usps.gov/Zonecharts/ .

private String getZoneJSON(String zip3Digit) { URL url; HttpURLConnection con; String zoneJSON = null; try { url = new URL("https://postcalc.usps.com/DomesticZoneChart/GetZoneChart?ZIPCode3Digit=" + zip3Digit + "&ExcelFormat=1"); con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"); con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); con.setRequestProperty("DNT", "1"); con.setInstanceFollowRedirects(false); InputStream h = (InputStream) con.getContent(); BufferedReader r = new BufferedReader(new InputStreamReader(h)); zoneJSON = r.readLine(); } catch(Exception e) { e.printStackTrace(); } return zoneJSON; } 

Reacties

  • Dit is perfect, bedankt. Ik had geen Ik ben al een tijdje terug om hun nieuwe site te beoordelen, maar ik ben blij dat ze nu een JSON-string aanbieden in plaats van de HTML te moeten parseren.

Antwoord

Je kunt de zone ook berekenen op basis van de afstand tussen de coördinaten oorsprong SCF (Sectional Center Facility) en de bestemming SCF

Zone 1 : Niet-lokale zones binnen een straal van 50 mijl rond het punt van herkomst

Zone 2: straal van 51-150 mijl

Zone 3: straal van 151-300 mijl

Zone 4: straal van 301-600 mijl

Zone 5: straal van 601-1.000 mijl

Zone 6: straal van 1001-1400 mijl

Zone 7: Straal van 1401-1800 mijl

Zone 8: 1801 mijl en meer

Zone 9: postcodes toegewezen voor uitzonderlijke netwerkomstandigheden

  • U kunt een boete SCF voor elke postcode hier: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
  • U kunt de coördinaten van de SCF ophalen van Google API
  • Zodra u de coördinaten heeft, zijn er tal van manieren om de afstand tussen hen te berekenen
  • U kunt ook de coördinaten overslaan en gewoon de afstand tussen de postcodes van de SCF zelf berekenen (niet de postcodes die deze bedient)

Answer

De USPS verkoopt hier een volledig zonediagram voor alle van-tot zip-combinaties voor $ 63: https://postalpro.usps.com/operations/zone-charts

Ik heb er een opgestuurd omdat ik dit al maanden nergens anders heb kunnen vinden.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *