Právě začínám s GeoPy a byly spuštění některých testů k určení kvality různých dostupných geokodérů. Všiml jsem si, že Bingův geokodér je přesnější než Google (alespoň pro mé účely), ale místo vrácení PSČ vrátí Bing <built-in function zip> spíše než PSČ. Nějaké nápady, proč / způsoby, jak to opravit?

Zde je můj testovací kód:

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) 

Můj výstup je:

<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 

Zdá se, že Bing je konzistentnější, pouze vrací jediný správný výsledek místo dvou výsledků. Jediným problémem je, že Bing z nějakého důvodu nechce vrátit PSČ, spíše vrátí řetězec obsahující adresu a <built-in function zip>.

Komentáře

  • Zdá se mi, že toto chování nelze ' reprodukovat – pro každý příklad záznamu vidím PSČ. Můžete zveřejnit více informací o vašem OS, verzi pythonu, verzi geopy atd …?
  • BTW, tato otázka se zdá vhodnější pro stackoverflow.com.
  • I ' m používající Linux Mint 10, Python 2.7, GeoPy 0.94.1. Co používáte? Zvláštní, že ' pracuje pro vás, takže geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle') vrací doplněk s PSČ? PS, ne
  • ne ' m spuštěn OS X Lion, Python 2.7.2, GeoPy 0.94.2 (to ' s tím, co PIP stáhlo). Ano, vidím skutečné PSČ pro výsledky bingu, ne < vestavěná funkce zip >.
  • Dobře, vypadá to, že to byl problém. Nechal jsem kamaráda spustit kód a on dostal stejné výsledky jako ty. Vypadá to, že problém, ať už byl jakýkoli, byl vyřešen v GeoPy 0.94.2. Odinstalován 0.94.1, nainstalován 0.94.2 a ' je teď vše v pořádku.

Odpovědět

Nejste si jisti, zda by to pomohlo, ale můžete použít poskytovatele ověření adresy, který zahrnuje geokódování. Jsem vývojář v SmartyStreets, právě takový poskytovatel. Podívejte se na tento příklad odpovědi JSON (přejděte dolů).

Google a Bing jsou skvělé služby přibližování adres, ale můžete narazit na potíže s jejich licenčními smlouvami v závislosti na tom, čeho se snažíte dosáhnout. Nabízíme bezplatný navždy plán pro zákazníky s nízkým využitím a pro neziskové organizace je zcela zdarma.

Komentáře

  • Hej, vypadá to Skvělé, myslím, že ' zkusím to zkusit. Máte ' pravdu, je to lepší z hlediska licenčních smluv za můj projekt. Díky.
  • Ze zvědavosti, odkud pocházejí vaše data?
  • Naše data pocházejí z USPS, kterým je SmartyStreets držitelem licence CASS. en.wikipedia.org/wiki/Coding_Accuracy_Support_System

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *