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>
を含む文字列を返すことです。
geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle')
は、郵便番号を含む完全な住所を返しますか?PSではなく