GeoPyを使い始めたばかりで、利用可能なさまざまなジオコーダーの品質を判断するためにいくつかのテストを実行します。BingのジオコーダーはGoogleよりも正確であることに気付きました(少なくとも私の目的では)が、Bingは郵便番号を返す代わりに

。これを修正する理由/方法について何か考えはありますか?

テストコードは次のとおりです:

from geopy import geocoders g = geocoders.Google() b = geocoders.Bing("<DEV KEY HERE>") services = [g, b] def search_list(addylist): for address in addylist: for x in services: for place, (lat, lng) in x.geocode(address, exactly_one=False): print "%s: %s: %.9f, %.9f \n" % (x, place, lat, lng) addy1 = "513 N 36th Ave , Seattle" addy2 = "121 S First Street , La Conner" addy3 = "854 NE 58th St, Seattle" addylist = [addy1, addy2, addy3] search_list(addylist) 

出力は次のとおりです。

<geopy.geocoders.google.Google object at 0x18e75d0>: 513 36th Ave, Seattle, WA 98122, USA: 47.606811900, -122.287247300 <geopy.geocoders.google.Google object at 0x18e75d0>: 513 N 36th St, Seattle, WA 98103, USA: 47.651385400, -122.351573800 <geopy.geocoders.bing.Bing object at 0x18e76d0>: 513 N 36TH St, Seattle, WA <built-in function zip>, United States: 47.651340485, -122.351692200 <geopy.geocoders.google.Google object at 0x18e75d0>: 121 1st St, La Conner, WA 98257, USA: 48.391576600, -122.496045800 <geopy.geocoders.google.Google object at 0x18e75d0>: 121 N 1st St, La Conner, WA 98257, USA: 48.394719800, -122.494525700 <geopy.geocoders.bing.Bing object at 0x18e76d0>: 121 S 1ST St, La Conner, WA <built-in function zip>, United States: 48.391513824, -122.495391846 <geopy.geocoders.google.Google object at 0x18e75d0>: 854 NE 58th St, Seattle, WA 98105, USA: 47.670977000, -122.317815000 <geopy.geocoders.bing.Bing object at 0x18e76d0>: 854 NE 58TH St, Seattle, WA <built-in function zip>, United States: 47.670978546, -122.317817688 

Bingの方が一貫性が高く、2つの結果ではなく1つの正しい結果しか返されません。唯一の問題は、Bingが何らかの理由で郵便番号を返したくないようで、アドレスと<built-in function zip>を含む文字列を返すことです。

コメント

  • この動作を再現できないようです'各サンプルエントリの郵便番号が表示されます。投稿できますかOS、pythonバージョン、geopyバージョンなどの詳細…?
  • BTW、この質問はstackoverflow.comに適しているようです。
  • I ' m Linux Mint 10、Python 2.7、GeoPy 0.94.1を使用しています。何を使用していますか?'が機能しているので、geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle')は、郵便番号を含む完全な住所を返しますか?PSではなく
  • I ' OS X Lion、Python 2.7.2、 GeoPy 0.94.2('はPIPがプルダウンしたものです)はい、<組み込み関数zip >。
  • わかりました、それが問題だったようです。友人にコードを実行してもらいましたが、彼はあなたと同じ結果を得ました。問題は、それが何であれ、GeoPy0.94.2で解決されたようです。 0.94.1をアンインストールし、0.94.2をインストールすると、'すべて正常になりました。

回答

これが役立つかどうかはわかりませんが、ジオコーディングを含むアドレス検証プロバイダーを使用できます。私はSmartyStreetsの開発者であり、まさにそのようなプロバイダーです。この JSON応答の例を確認してください(下にスクロールしてください)。

GoogleとBingは優れたアドレス近似サービスですが、達成しようとしていることによっては、ライセンス契約で問題が発生する可能性があります。使用率の低いお客様向けに永久無料プランを提供しており、非営利団体は完全に無料です。

コメント

  • ねえ、これは見た目です'これを試してみるつもりです。'そうです、ライセンス契約の観点からはこれが優れています私のプロジェクトに感謝します。ありがとうございます。
  • 好奇心から、データはどこから来ていますか?
  • 私たちのデータは、SmartyStreetsがCASS認定のライセンシーであるUSPSからのものです。 en.wikipedia.org/wiki/Coding_Accuracy_Support_System

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です