10

Google MapsV3APIを使用しています。住所、施設名、緯度/経度などの適切なジオコーディングされた結果を返すために、住所検索を送信しています。

私の問題は、ジオコーダーからの応答の形式が異なる可能性があることです。常に同じ構造に従いますが、一部の応答では、address_componentsデータ構造に異なるキーが使用されます。

たとえば、一部の検索結果は次のようになります。

establishment               -> location name
street_number               -> address street number
route                       -> the street name
locality                    -> the city
administrative_area_level_1 -> the state
postal_code                 -> zip/postal code

一方、「ニューハンプシャー州ハンプトンビーチ」などの一般的なエリアを検索すると、次のように表示されます。

sublocality                 -> beach name / area
administrative_area_level_3 -> city/town name
administrative_area_level_1 -> the state
postal_code                 -> zip/postal code

ご覧のとおり、2つの応答には違いがあります。これらのさまざまな応答を処理して、人間が読める形式で使用できるアドレスコンポーネントのデータセットを返すために使用できる既知のjqueryライブラリはありますか?

応答には「formatted_address」タイプも返されます。これは、「Hampton Beach、NH 03842、USA」または「BostonUniversity、1 University Rd、Boston、MA 02215-1407、USA」のように返されます。 、これらもかなり異なります。カンマで分割することもできますが、完璧なデータベース挿入には実際のaddress_componentsを使用したいと思います。

4

2 に答える 2

14

DBに次のキーだけをミラーリングさせてみませんか?

street_number                    -> address street number
route                            -> the street name
locality                         -> the city/town    
administrative_area_level_3      -> the city/town
administrative_area_level_1      -> the state
postal_code                      -> zip/postal code

が存在する場合localityは、リクエストでそれを使用します(より詳細な情報を提供しているように見えます-http://code.google.com/apis/maps/documentation/geocoding/#JSON

street name存在しない、またはlocality存在しない場合はadministrative_area_level_3administrative_area_level_1

これにより、コメントの1つで述べたように、情報が存在する場合、またはサブローカリティ(ビーチなど)の市/州だけが存在する場合に、完全に人間が読める住所が提供されます。

**私はあなたが米国だけを気にかけていると仮定しています。

于 2011-06-13T19:13:06.603 に答える
1

アドレスは非常に「人間的な」ものです。Googleのデータが非常に乱雑である理由は、ソースデータが乱雑であるためですが、1つの領域で類似している可能性が高いと思います。

住所のどの部分があなたに関係がありますか?これを人間に与えるだけなら、あなたが持っているものは何でも彼に与えてください。

于 2011-06-10T22:19:34.193 に答える