Most kezdem a GeoPy használatát, és már tesztek futtatása a rendelkezésre álló különböző geokódolók minőségének meghatározásához. Észrevettem, hogy a Bing geokódolója pontosabb, mint a Google (legalábbis az én céljaimhoz), de irányítószám visszaadása helyett a Bing visszaadja <built-in function zip> és nem az irányítószám. Van valami gondolata annak, hogy miért / hogyan lehet ezt kijavítani?

Itt van a tesztkódom:

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) 

A kimenetem:

<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 

A Bing következetesebbnek tűnik, csak két helyes eredményt ad vissza két eredmény helyett. Az egyetlen kérdés, hogy a Bing valamilyen oknál fogva nem akar visszaküldeni egy irányítószámot, inkább egy stringet ad vissza, amely tartalmazza a címet és <built-in function zip>.

Megjegyzések

  • Nem tudom, hogy ' nem reprodukálhatnám ezt a viselkedést – minden egyes bejegyzéshez látok irányítószámokat. További információk az operációs rendszerről, a python verzióról, a geopy verzióról stb. …
  • BTW, ez a kérdés alkalmasabbnak tűnik a stackoverflow.com webhelyre.
  • I ' m Linux Mint 10, Python 2.7, GeoPy 0.94.1 használatával. Mit használsz? Furcsa, hogy ' neked dolgozik, ezért geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle') az addess-t egy irányítószámmal egészíti ki? PS, nem
  • I ' m OS X Lion, Python 2.7.2, GeoPy 0.94.2 (hogy ' s amit a PIP lehúzott). Igen, a bing eredmények tényleges irányítószámait látom, nem pedig < beépített függvény zip >.
  • Oké, úgy tűnik, ez volt a probléma. Volt egy barátom, aki futtatta a kódot, és ugyanazokat az eredményeket kapta, mint te. Úgy tűnik, hogy bármi is volt a probléma, megoldódott a GeoPy 0.94.2 verzióban. Eltávolította a 0.94.1 alkalmazást, telepítette a 0.94.2 alkalmazást, és ez most ' jó.

Válasz

Nem biztos benne, hogy ez segítene-e, de használhat egy címellenőrző szolgáltatót, amely geokódolást is tartalmaz. Fejlesztő vagyok a SmartyStreets-nél, csak egy ilyen szolgáltató. Nézze meg ezt a példát a JSON-válaszra (görgessen lefelé).

A Google és a Bing remek cím-közelítő szolgáltatások, de problémákat okozhat a licencszerződéseikkel, attól függően, hogy mit próbál elérni. Ingyenes, örökre szóló tervet kínálunk alacsony fogyasztású ügyfelek számára, és ez teljesen ingyenes a nonprofit szervezetek számára.

Megjegyzések

  • Hé, ez úgy néz ki nagyszerű, azt hiszem, ' megpróbálom ezt megadni. Te ' igazad van, ez jobb a licencszerződések szempontjából Köszönöm.
  • Kíváncsiságból honnan származnak az adatai?
  • Adataink az USPS-től származnak, amellyel a SmartyStreets CASS-tanúsítvánnyal rendelkezik. hu.wikipedia.org/wiki/Coding_Accuracy_Support_System

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük