Zipによる都市と州の検索GoogleGeocode Api [終了]


82

基本的に、郵便番号内の都市と州のリストを取得したいと思います。GoogleのGeocodeAPIはそうすることができますか?ドキュメントを調べてみましたが、情報が圧倒的であることがわかりました。

どんな助けでもいただければ幸いです。そのようなタスクを実行する別の方法がある場合は、私に知らせてください。

ありがとう

編集:http//maps.google.com/maps/geo?output = xmlq = 14606から市と州を取得できましたが、制限はありますか?


HERE Maps Geocoding RESTAPIを使用できますプロジェクト作成し、REST資格情報を取得します。それらがライブになるまで1時間待ってから(最初はInvalidCredentialsエラーが表示されました)、次に呼び出しgeocoder.cit.api.here.com/6.2/geocode.json?PostalCode=2400&country=Denmark&app_id={APP_ID}&app_code={APP_CODE}&gen=9ます(アドレス部分を指定できます)
aexl 2017

回答:


109

使用するジオコーディングAPIを

たとえば、zip 77379を検索するには、次のようなリクエストを使用します。

https://maps.googleapis.com/maps/api/geocode/json?address=77379&sensor=true&key=YOUR_GOOGLE_PLATFORM_API_KEY


10
センサー=偽という意味ですか?
Rup 2011年

19
「注:Geocoding APIは、Googleマップと組み合わせてのみ使用できます。マップに表示せずに結果をジオコーディングすることは禁止されています。」
アンディレイ

2
@Rupセンサーはもう必要ありません
Dejell 2015年

2
これは、「city zip code api」をグーグルで検索したときのグーグルでの最初のヒットであり、これは明らかにそうではありません:(
DuckPuncher 2016年

6
@KevinLeary result_typeは、郵便番号に限定されません。Googleのジオコーダーは、郵便番号を住所番号と間違えます(zip 89100を試してください)。代わりに使用するフォーマットは、maps.googleapis.com/maps/api/geocode/...ここに記載されているように:developers.google.com/maps/documentation/geocoding/...
マイクKormendy

53

WebベースのAPIを使用してこれを行う方法をいくつか見つけました。郵便番号が彼らのものなので、米国郵政公社が最も正確だと思いますが、Ziptasticははるかに簡単に見えます。

米国郵政公社のHTTP / XMLAPIの使用

XMLベースのWebAPI、具体的にはこのPDFドキュメントのセクション4.0(22ページ)を文書化した米国郵便サービスWebサイトのこのページによると、5桁の郵便番号を含むXML要求を送信できるURLがあります。対応する市と州を含むXMLドキュメントで応答します。

彼らのドキュメントによると、これがあなたが送るものです:

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

そして、これがあなたが受け取るものです:

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

USPSでは、APIを使用する前に登録する必要がありますが、私が知る限り、アクセスには料金はかかりません。ちなみに、彼らのAPIには他にもいくつかの機能があります。住所の標準化と郵便番号の検索だけでなく、追跡、配送、ラベルなどのスイート全体を実行できます。

Ziptastic HTTP / JSON APIの使用(サポートされなくなりました

更新:2017年8月13日の時点で、Ziptasticは有料APIになり、見つけることができます ここます

これはかなり新しいサービスですが、ドキュメントによると、次のように、GETリクエストをhttp://ziptasticapi.comに送信するだけでよいようです。

GET http://ziptasticapi.com/48867

そして、次の行に沿ってJSONオブジェクトを返します。

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

確かに、それは動作します。次のような操作を行うことで、コマンドラインからこれをテストできます。

curl http://ziptasticapi.com/48867 

8
Ziptasticの推奨事項に対する大きな愛。<3!
ceejayoz 2012

5
米国郵政公社は、特に郵送に関連する活動にAPIを使用していない限り、アクセスの要求を拒否する可能性があります。少なくとも、それは私の経験です。
eaj 2012年

1
@eajその通りです。「住所検証APIは、USPSの配送または郵送サービスとのみ組み合わせて使用​​できます。」
dragan.stepanovic 2015

2
Ziptasticはサポートされなくなりました。もう使用しないでください。
vaindil 2016

2
@RationalRabbit:Ziptasticが有料APIになったことを示す更新を送信しました。
リチャードジョーンズ

14
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));
}

あなたのコードの一部は、私は少し、どうもありがとう:)助け
Kamlesh

6

数か月前、私は自分のプロジェクトの1つに同じ要件がありました。私はそれを少し検索し、次の解決策を見つけました。これが唯一の解決策ではありませんが、私はそれをより簡単なものの1つに見つけましたものの1。

http://www.webservicex.net/uszip.asmxのWebサービスを使用します
具体的にはGetInfoByZIP()方法。

任意の郵便番号(ex: 40220)でクエリを実行でき、次のような応答が返されます...

<?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>

お役に立てれば...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.