google-api maps - Suche nach Stadt und Bundesstaat nach Google Geocode Api




key kostenlos (5)

Vor ein paar Monaten hatte ich die gleiche Anforderung für eines meiner Projekte. Ich suchte ein wenig danach und fand die folgende Lösung heraus. Dies ist nicht die einzige Lösung, aber ich fand es zu einer der einfacheren .

Nutzen Sie den Webservice unter http://www.webservicex.net/uszip.asmx .
Speziell die Methode GetInfoByZIP() .

Sie können nach jeder Postleitzahl abfragen ( ex: 40220 ) und Sie erhalten eine Antwort zurück wie folgt ...

<?xml version="1.0" encoding="UTF-8"?>
 <NewDataSet>
  <Table>
   <CITY>Louisville</CITY> 
   <STATE>KY</STATE> 
   <ZIP>40220</ZIP> 
   <AREA_CODE>502</AREA_CODE> 
   <TIME_ZONE>E</TIME_ZONE> 
  </Table> 
</NewDataSet>

Hoffe das hilft...

Ich möchte im Grunde eine Liste von Stadt und Staat innerhalb einer Postleitzahl abrufen. Ist Google Geocode API dazu in der Lage? Ich habe versucht, in die Dokumentation zu schauen, fand aber die Information überwältigend.

Jede Hilfe wäre willkommen. Wenn es eine andere Methode gibt, um diese Aufgabe zu erfüllen, lassen Sie es mich bitte wissen.

Vielen Dank

EDIT: Ich war in der Lage, die Stadt und Staat durch: http://maps.google.com/maps/geo?output=xml&q=14606 abrufen, aber gibt es eine Einschränkung dagegen?



function getCityState($zip, $blnUSA = true) {
    $url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $zip . "&sensor=true";

    $address_info = file_get_contents($url);
    $json = json_decode($address_info);
    $city = "";
    $state = "";
    $country = "";
    if (count($json->results) > 0) {
        //break up the components
        $arrComponents = $json->results[0]->address_components;

        foreach($arrComponents as $index=>$component) {
            $type = $component->types[0];

            if ($city == "" && ($type == "sublocality_level_1" || $type == "locality") ) {
                $city = trim($component->short_name);
            }
            if ($state == "" && $type=="administrative_area_level_1") {
                $state = trim($component->short_name);
            }
            if ($country == "" && $type=="country") {
                $country = trim($component->short_name);

                if ($blnUSA && $country!="US") {
                    $city = "";
                    $state = "";
                    break;
                }
            }
            if ($city != "" && $state != "" && $country != "") {
                //we're done
                break;
            }
        }
    }
    $arrReturn = array("city"=>$city, "state"=>$state, "country"=>$country);

    die(json_encode($arrReturn));
}

Ich habe ein paar Möglichkeiten gefunden, dies mit webbasierten APIs zu tun. Ich denke, der US Postal Service wäre der genaueste, da die Postleitzahlen ihr Ding sind, aber Ziptastic sieht viel einfacher aus.

Verwenden der HTTP / XML-API des US-Postdienstes

Laut dieser Seite auf der Website des US-Postdienstes, die ihre XML-basierte Web-API , insbesondere Abschnitt 4.0 (Seite 22) dieses PDF-Dokuments dokumentiert , haben sie eine URL, wo Sie eine XML-Anfrage mit einer 5-stelligen Postleitzahl senden können Antworten Sie mit einem XML-Dokument, das die entsprechende Stadt und den entsprechenden Bundesstaat enthält.

Laut ihrer Dokumentation würden Sie Folgendes senden:

http://SERVERNAME/ShippingAPITest.dll?API=CityStateLookup&XML=<CityStateLookupRequest%20USERID="xxxxxxx"><ZipCode ID= "0"><Zip5>90210</Zip5></ZipCode></CityStateLookupRequest>

Und hier ist, was Sie zurück erhalten würden:

<?xml version="1.0"?> 
<CityStateLookupResponse> 
    <ZipCode ID="0"> 
        <Zip5>90210</Zip5> 
        <City>BEVERLY HILLS</City> 
        <State>CA</State> 
    </ZipCode> 
</CityStateLookupResponse>

USPS verlangt, dass Sie sich bei ihnen registrieren, bevor Sie die API verwenden können, aber soweit ich das beurteilen kann, entstehen keine Kosten für den Zugriff. Übrigens hat ihre API noch einige andere Eigenschaften: Sie können Adressstandardisierung und Postleitzahlsuche, sowie die ganze Reihe von Tracking, Versand, Etiketten, etc. tun.

Verwenden der ziptastischen HTTP / JSON-API (wird nicht mehr unterstützt )

Update: Ab dem 13. August 2017 ist Ziptastic jetzt eine kostenpflichtige API und kann hier gefunden werden

Dies ist ein ziemlich neuer Service, aber laut ihrer Dokumentation sieht es so aus, als ob Sie nur eine GET-Anfrage an http://ziptasticapi.com senden müssen:

GET http://ziptasticapi.com/48867

Und sie werden ein JSON-Objekt nach folgenden Kriterien zurückgeben:

{"country": "US", "state": "MI", "city": "OWOSSO"}

Tatsächlich funktioniert es. Sie können dies über eine Befehlszeile testen, indem Sie Folgendes tun:

curl http://ziptasticapi.com/48867 

Zusätzlich zu den anderen Antworten:

Einmal erhalten, werden Access Tokens typischerweise mit jeder Anfrage von Clients an geschützte Resource Server gesendet. Dies führt zu einem Risiko beim Stehlen und Wiedergeben von Zugriffstoken (vorausgesetzt natürlich, dass Zugangstoken vom Typ "Bearer" sind, wie in der ursprünglichen RFC6750 definiert).

Beispiele für diese Risiken, im wirklichen Leben:

  • Ressourcenserver sind in der Regel verteilte Anwendungsserver und weisen im Vergleich zu Autorisierungsservern in der Regel niedrigere Sicherheitsstufen auf (niedrigere SSL / TLS-Konfig. Weniger Härten usw.). Autorisierungsserver hingegen werden in der Regel als kritische Sicherheitsinfrastruktur betrachtet und unterliegen einer strengeren Verhärtung.

  • Zugriffstoken können in HTTP-Traces, Protokollen usw. angezeigt werden, die rechtmäßig zu Diagnosezwecken auf den Ressourcenservern oder Clients gesammelt werden. Diese Spuren können über öffentliche oder halböffentliche Stellen (Bug-Tracer, Service-Desk usw.) ausgetauscht werden.

  • Backend-RS-Anwendungen können an mehr oder weniger vertrauenswürdige Dritte ausgelagert werden.

Der Aktualisierungstoken hingegen wird in der Regel nur zweimal über die Leitungen und immer zwischen dem Client und dem Autorisierungsserver übertragen: einmal beim Client und einmal beim Client während der Aktualisierung (effektiv "ablaufend" bei der vorherigen Aktualisierung) Zeichen). Dies ist eine drastisch eingeschränkte Möglichkeit zum Abhören und Wiedergeben.

Der letzte Gedanke, Refresh Tokens, bietet sehr wenig Schutz für kompromittierte Clients.







google-api google-geocoder