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
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
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