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

  • Ik kan ' dit gedrag niet lijken te reproduceren – ik zie postcodes voor elk voorbeelditem. Kun je posten meer informatie over je OS, Python-versie, geopy-versie, enz …?
  • Trouwens, deze vraag lijkt meer geschikt voor stackoverflow.com.
  • I ' m met Linux Mint 10, Python 2.7, GeoPy 0.94.1. Wat gebruik je? Vreemd dat het ' voor jou werkt, dus geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle') retourneert de addess compleet met een postcode? PS, niet
  • Ik ' m met OS X Lion, Python 2.7.2, GeoPy 0.94.2 (dat ' is wat PIP heeft verwijderd). Ja, ik zie de daadwerkelijke postcode voor bing-resultaten, niet < ingebouwde functie zip >.
  • Oké, zo te zien was het het probleem. Ik liet een vriend de code uitvoeren en hij kreeg dezelfde resultaten als jij. Het lijkt erop dat het probleem, wat het ook was, is opgelost in GeoPy 0.94.2. 0.94.1 verwijderd, 0.94.2 geïnstalleerd, en het ' is nu allemaal goed.

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *