Pokouším se zobrazit informace o přepravní zóně USPS, ale část webu USPS, ze které jsem tyto informace škrábal, byla porušena po celé měsíce a zajímalo by mě, jestli někdo zná jiný způsob, jak to získat v porovnatelném formátu?
Stránka, která byla několik měsíců rozbitá, je zde: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
Mají stejný graf v nepříliš analyzovatelném formátu zde: http://postcalc.usps.gov/Zonecharts/
Tyto informace ukládám do mezipaměti, takže není nutné je neustále vyžadovat, ale mezipaměť je občas vymazána, protože zóny se mění čas od času.
Odpověď
Zde je kód, který používám k načtení dat JSON, která vyplňují 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; }
Komentáře
- To je perfektní, díky. Neměl jsem se za chvíli nevrátili, aby zkontrolovali své nové stránky, ale jsem rád, že nyní místo řetězce HTML zpracovávají řetězec JSON.
Odpověď
Zónu můžete také vypočítat na základě vzdálenosti mezi počátkem souřadnic počátečního SCF (Sectional Center Facility) a cílovým SCF
Zóna 1 : Nelokální zóny v okruhu 50 mil od místa vzniku.
Zóna 2: poloměr 51 až 150 mil
Zóna 3: poloměr 151 až 300 mil
Zóna 4: poloměr 301–600 mil
Zóna 5: poloměr 601–1 000 mil
Zóna 6: poloměr 1001–1400 mil
Zóna 7: Poloměr 1401–1800 mil
Zóna 8: 1801 mil a více
Zóna 9: PSČ přidělená pro výjimečné okolnosti v síti
- Můžete pokutovat SCF pro každé PSČ zde: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Souřadnice SCF můžete získat z Google API
- Jakmile budete mít souřadnice, existuje spousta způsobů vypočítat vzdálenost mezi nimi
- Můžete také přeskočit souřadnice a jednoduše vypočítat vzdálenost mezi PSČ samotného SCF (nikoli poštovní směrovací čísla, která slouží)
Odpověď
USPS prodává graf celé zóny pro všechny kombinace od-do zip za 63 $ zde: https://postalpro.usps.com/operations/zone-charts
Poslal jsem pro jednoho, protože už měsíce nejsem schopen najít informace kdekoli jinde.