Încerc să afișez informații despre zona de expediere USPS, dar secțiunea site-ului USPS pe care am folosit-o pentru a răzu aceste informații a fost ruptă de luni de zile și mă întreb dacă cineva știe un alt mod de a-l obține într-un format parsabil?
Pagina care a fost ruptă de luni de zile este aici: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
Au aceeași diagramă într-un format nu atât de parsabil aici: http://postcalc.usps.gov/Zonecharts/
Am cache aceste informații, așa că nu trebuie solicitate în mod constant, dar cache-ul este șters ocazional, deoarece zonele se schimbă din când în când.
Răspuns
Iată codul pe care îl folosesc pentru a prelua datele JSON care populează 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; }
Comentarii
- Acest lucru este perfect, mulțumesc. Nu aveam nu m-am întors să-și revizuiască noul site de ceva vreme, dar mă bucur că au publicat un șir JSON acum, în loc să trebuiască să analizeze codul HTML.
Răspuns
De asemenea, puteți calcula zona pe baza distanței dintre coordonatele de origine SCF (Sectional Center Facility) și destinația SCF
Zona 1 : Zone nelocale pe o rază de 50 mile de la punctul de inițiere
Zona 2: raza 51-150 mile
Zona 3: raza 151-300 mile
Zona 4: rază 301-600 mile
Zona 5: rază 601-1.000 mile
Zona 6: rază 1001-1400 mile
Zona 7: Raza 1401-1800 mile
Zona 8: 1801 mile și peste
Zona 9: coduri poștale atribuite pentru circumstanțe excepționale ale rețelei
- Puteți amenda SCF pentru fiecare cod poștal aici: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Puteți obține coordonatele SCF din Google API
- După ce ai coordonatele, există o mulțime de moduri pentru a calcula distanța dintre ele
- De asemenea, puteți sări peste coordonate și să calculați doar distanța dintre codurile poștale ale SCF (nu codurile poștale pe care le servește)
Răspuns
USPS vinde o diagramă de zonă completă pentru toate combinațiile de la zip la 63 USD aici: https://postalpro.usps.com/operations/zone-charts
Am trimis unul pentru că nu am mai putut găsi informații în altă parte de câteva luni.