4

郵便番号のデータベースがあることは知っていますが、それに基づいて都市/州のフィールドを取得するにはどうすればよいですか? これらのデータベースには都市/州が含まれていますか、それとも Web サービスへの何らかのルックアップを行う必要がありますか?

4

5 に答える 5

3

最新の郵便番号データベースには、市、州フィールドの列が含まれています。

http://sourceforge.net/projects/zips/

http://www.populardata.com/

于 2010-02-17T19:05:30.547 に答える
1

Ziptastic HTTP/JSON APIの使用

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

GET http://ziptasticapi.com/48867

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

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

確かに、それは機能します。次のようにして、コマンドラインからこれをテストできます。

curl http://ziptasticapi.com/48867 
于 2012-04-16T01:02:41.920 に答える
1

米国郵政公社のHTTP/XML APIの使用

XML ベースの Web API を文書化した米国郵政公社の Web サイトのこのページ、具体的にはこの PDF ドキュメントのセクション 4.0 (22 ページ) によると、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>

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

于 2012-03-21T00:15:33.943 に答える
0

「入力する必要があります...」ではなく、「どのように入力する必要があります...」という質問に答えようとします。

これを複数回行うと仮定すると、独自のデータベースを構築する必要があります。これは、多くのソースのいずれかからダウンロードしたテキスト ファイルにすぎない可能性があります (Pentium10 の返信はこちらを参照してください)。都市名が必要な場合は、ZIP を検索し、都市/州のテキストを抽出します。処理を高速化するには、テーブルを ZIP の番号順に並べ替え、行のインデックスを作成し、バイナリ検索を使用します。

ZIP データベースが次のようになっている場合 ( sourceforgeから):

"zip code", "state abbreviation", "latitude", "longitude", "city", "state"
"35004", "AL", " 33.606379", " -86.50249", "Moody", "Alabama"
"35005", "AL", " 33.592585", " -86.95969", "Adamsville", "Alabama"
"35006", "AL", " 33.451714", " -87.23957", "Adger", "Alabama"

テキストからの最も単純な抽出は次のようになります

$zipLine = lookup($ZIP);
if($zipLine) {
    $fields = explode(", ", $zipLine);
    $city  = $fields[4];
    $state = $fields[5];
}  else {
    die "$ZIP not found";
}

PHP でテキストをいじっているだけなら、それで十分です。しかし、データベース アプリケーションを使用している場合は、SQL ですべてを行うことになります。あなたのアプリケーションの詳細は、より詳細な回答を引き出すかもしれません.

于 2010-02-17T21:32:37.190 に答える