Ik ben net begonnen met GeoPy en ben het uitvoeren van enkele tests om de kwaliteit van de verschillende beschikbare geocoders te bepalen. Ik heb gemerkt dat de geocoder van Bing nauwkeuriger is dan die van Google (althans voor mijn doeleinden), maar in plaats van een postcode te retourneren, retourneert Bing <built-in function zip>
in plaats van de postcode. Enig idee waarom / manieren om dit te corrigeren?
Hier is mijn testcode:
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)
Mijn output is:
<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 lijkt meer consistent te zijn en geeft slechts één correct resultaat terug in plaats van twee resultaten. Het enige probleem is dat Bing om de een of andere reden geen postcode wil retourneren, maar een string met het adres en <built-in function zip>
.
Opmerkingen
Antwoord
Ik weet niet zeker of dit zou helpen, maar je zou een adresverificatieprovider kunnen gebruiken die geocodering bevat. Ik “ben een ontwikkelaar bij SmartyStreets, net zon provider. Bekijk dit voorbeeld JSON-antwoord (scroll naar beneden).
Google en Bing zijn geweldige adresbenaderingsservices, maar u kunt problemen krijgen met hun licentieovereenkomsten, afhankelijk van wat u probeert te bereiken. We bieden een gratis forever-abonnement voor klanten met een laag gebruik, en het is helemaal gratis voor non-profitorganisaties.
Opmerkingen
- Hé, dit lijkt geweldig, ik denk dat ik ' ga proberen dit eens te proberen. Je hebt ' gelijk, dit is beter in termen van licentieovereenkomsten voor mijn project. Bedankt.
- Waar komen je gegevens uit nieuwsgierigheid vandaan?
- Onze gegevens komen van de USPS, waarmee SmartyStreets een CASS-gecertificeerde licentiehouder is. en.wikipedia.org/wiki/Coding_Accuracy_Support_System
geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle')
retourneert de addess compleet met een postcode? PS, niet