Próbuję wyświetlić informacje o strefie wysyłkowej USPS, ale sekcja witryny USPS, z której pobierałem te informacje, została uszkodzona od miesięcy i zastanawiam się, czy ktoś zna inny sposób na uzyskanie tego w formacie możliwym do analizy?
Strona, która była zepsuta od miesięcy, jest tutaj: http://postcalc.usps.gov/Zonecharts/ZoneChartPrintable.aspx?zipcode=931
Mają tutaj ten sam wykres w niezbyt łatwo analizowalnym formacie: http://postcalc.usps.gov/Zonecharts/
Zapisuję te informacje w pamięci podręcznej, więc nie trzeba ich stale żądać, ale pamięć podręczna jest od czasu do czasu czyszczona, ponieważ strefy się zmieniają od czasu do czasu.
Odpowiedź
Oto kod, którego używam do pobierania danych JSON, które zapełniają 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; }
Komentarze
- Doskonale, dziękuję. Nie miałem od jakiegoś czasu nie sprawdzam ich nowej witryny, ale cieszę się, że teraz wyświetlają ciąg JSON zamiast analizować kod HTML.
Odpowiedź
Możesz również obliczyć strefę w oparciu o odległość między początkiem współrzędnych SCF (Ośrodkiem Centrum Sekcji) a docelowym SCF
Strefa 1 : Strefy nielokalne w promieniu 50 mil od punktu początkowego
Strefa 2: w promieniu 51-150 mil
Strefa 3: w promieniu 151-300 mil
Strefa 4: w promieniu 301–600 mil
Strefa 5: w promieniu 601–1 000 mil
Strefa 6: w promieniu 1001–1400 mil
Strefa 7: Promień 1401-1800 mil
Strefa 8: 1801 mil i więcej
Strefa 9: Kody pocztowe przypisane do wyjątkowych sytuacji w sieci
- Możesz ukarać SCF dla każdego kodu pocztowego tutaj: https://fast.usps.com/fast/fastApp/resources/labelListFiles.action
- Możesz uzyskać współrzędne SCF z Google API
- Po uzyskaniu współrzędnych jest wiele sposobów aby obliczyć odległość między nimi
- Możesz także pominąć współrzędne i po prostu obliczyć odległość między kodami pocztowymi SCF (nie obsługiwanymi kodami pocztowymi)
Odpowiedź
USPS sprzedaje pełny wykres strefowy dla wszystkich kombinacji od-do zip za 63 USD tutaj: https://postalpro.usps.com/operations/zone-charts
Wysłałem po jedno, ponieważ od miesięcy nie mogę znaleźć informacji o tym nigdzie indziej.