2009-07-12 7 views
7

私はhttp://maps.google.com/maps/geoを使用していますか?いくつかのアドレスをジオコードするWebサービス。最も正確なジオコードを選択する

問題は完全な住所が必ずしもより正確なジオコードを与えるとは限りません。

例えばLlantysilio、デンビーシャーに渡し、英国は、XMLの精度属性が選択したアドレスを決定する際に非常に役立つていないようだはるかに正確Llantysilio、Denbighshireスランゴスレン、英国

を超えています。

どのようにこの問題を他の人が処理しましたか?最も効果的なジオコードを選択する良い方法はありますか?

*編集 追加情報のビット - 完全なアドレスを入力すると、アドレスの最初の行は無視され、ジオコーダーは余分な行にある中央の通りである別の正確なアドレスにジャンプしますアドレスに追加されます。この例では、Llantysilioを無視して、中部のスランゴレンでキャッスル・ストリートを選んでいます。 kdgregoryによって

編集:ここで私は(行方不明APIキーが問題ではないようです)を使用し2つのAPIリクエストは次のとおりです。

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml 

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml 
+0

本当ですか?これらのアドレスをGoogleマップに貼り付けると、同じ場所に移動するためです。ウェブベースの地図で別のジオコーディングエンジンを使用していると非常に驚いています。おそらくあなたの実際のデータにスペルの違いがありますか? – kdgregory

+0

はい、本当に - 私は知っています - 彼らが違うのは変ですが、私はいくつかの異なる場所を調べました。また、goathland(whitby、)の北ヨークシャー、英国 – wheresrhys

+0

もお試しください:興味深い2つのAPIリクエストを作成しました。クエリが長いほど、結果は結果に戻りますが、短いクエリは結果に戻りません。もっと興味深いのは、私がGoogle Mapsからのリンクを調べるとき、それは異なっているということです。 – kdgregory

答えて

0

は最後に、私は、はるかに正確である、英国ではGoogleのジオコーディングWebサービスとアドレスの整合性ではあまりにも多くの奇妙なブリップがあると結論付けたが、結局代わりに郵便番号を使用する方法を把握するために管理:how it's done

0

ジオコードresponse.Placemark [0] GMAPを経由することができますあなたが持っているものをチェックし、レベルを取ったり、やり直してください。私はその順序でデフォルトを選択しました

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName 
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName 
place.AddressDetails.Country.CountryName 

上記のように、より論理的に名前を付けることができました。 gmaps 3はv2と多少互換性がありません。

0

あなたの完全な住所とあなたの住所が含まれているすべての部分集合をジオコーディングする非常に醜いハックを試すことができます。逆ジオコーディングツールでそれらに関連する住所を取得するために使用するジオコードがたくさんあります。 最初に与えたものと比較して多くの住所を取得したら、最も正確な地理コードを取得します。 多くのリクエスト、多くのリクエストがあなたの住所に追加しますが、醜い作業ですグーグルはXAL仕様に従うのではなく、サブセットでそれらを実装していないことに注意することはそれはおそらく良いことだいくつかの統計^^

1

を作るのは楽しいこと。

だから、これはあなたが必ずしも行うことができないことを意味します:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName 
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName 
place.AddressDetails.Country.CountryName 

の行政区域ではないながら、国やサブ地域を提供することができるので。

返されるデータは、データに期待できるものの相対的な考え方を示す精度ゲージで識別されます。したがって、オブジェクトを格納して、この変数を使用して完全なアドレスの一部を切り落とし、このような方法でジオコードすることができます。しかし、これはお勧めできません。

一般的に、完全な住所は、(道路なしで)一般的な場所を見つける良い方法です。 Googleが提供する重み付き優先ロジックの一部を使用してアドレスを絞り込むことができます。

など。 setViewPortまたはsetCountryCodeを使用すると、より正確な検索を行うことができます。

ジオコーディングは科学ではありません。一貫した結果は期待できません。

+0

たとえば、「Mississippi River、Minnesota、USA」の場合、Googleは のみを提供します。place.AddressDetails.Accuracy = 0; place.AddressDetails.AddressLine = ["Mississippi"]; 国情報がありません – mems

4

私の友人の正確さを解釈する必要があります。精度には通常2つの部分がありますが、最初にアドレスマッチングがあります。第2の部分は重要な部分です。あなたは、米国の正確なレベル、都市レベル、郵便番号セントロイド、通り補間レベル、または実際の小包精度レベルに何かをジオコードすることができます。最初の例は4で、2番目の例は9です。このサービスでは、より高い方が良いです。

精度値の説明 0正確さが不明です。 1国レベルの精度。 2地域(州、県、県など)レベルの精度。 3準地域(郡、自治体など)レベルの正確さ。 4町(市町村)レベルの正確さ。 5郵便番号(郵便番号)レベルの精度。 6ストリートレベルの精度。 7交差レベル精度。 8アドレスレベルの精度。 9敷地内(建物名、プロパティー名、ショッピングセンターなど)のレベル精度。

関連する問題