Sto cercando di visualizzare le informazioni sulla zona di spedizione USPS ma la sezione del sito USPS che ho utilizzato per estrarre queste informazioni è stata interrotta da mesi e mi chiedo se qualcuno sappia un altro modo per ottenerlo in un formato analizzabile?
La pagina che è stata interrotta per mesi è qui: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
Hanno lo stesso grafico in un formato non analizzabile qui: http://postcalc.usps.gov/Zonecharts/
Memorizzo queste informazioni nella cache quindi non è necessario che vengano richieste costantemente, ma la cache viene svuotata occasionalmente poiché le zone cambiano di tanto in tanto.
Risposta
Ecco il codice che utilizzo per recuperare i dati JSON che popolano 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; }
Commenti
- Perfetto, grazie. Non avevo Non sono tornato per rivedere il loro nuovo sito da un po , ma sono contento che ora forniscano una stringa JSON invece di dover analizzare lHTML.
Risposta
Puoi anche calcolare la zona in base alla distanza tra le coordinate di origine SCF (Sectional Center Facility) e la destinazione SCF
Zona 1 : Zone non locali entro un raggio di 50 miglia dal punto di origine
Zona 2: raggio 51-150 miglia
Zona 3: raggio 151-300 miglia
Zona 4: raggio di 301-600 miglia
Zona 5: raggio di 601-1.000 miglia
Zona 6: raggio di 1001-1400 miglia
Zona 7: Raggio di 1401-1800 miglia
Zona 8: 1801 miglia e oltre
Zona 9: codici postali assegnati per circostanze di rete eccezionali
- Puoi multare il SCF per ogni codice postale qui: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Puoi ottenere le coordinate dellSCF dallAPI di Google
- Una volta che hai le coordinate, ci sono molti modi per calcolare la distanza tra loro
- Puoi anche saltare le coordinate e calcolare semplicemente la distanza tra i codici postali dellSCF stesso (non i codici postali che serve)
Risposta
LUSPS vende un grafico a zone complete per tutte le combinazioni da-a zip per $ 63 qui: https://postalpro.usps.com/operations/zone-charts
Ne ho inviato uno poiché non sono più in grado di trovare informazioni da nessunaltra parte da mesi.