Acabo de comenzar con GeoPy y he estado ejecutando algunas pruebas para determinar la calidad de los diferentes geocodificadores disponibles. He notado que el geocodificador de Bing es más preciso que el de Google (para mis propósitos, al menos), pero en lugar de devolver un código postal, Bing devuelve <built-in function zip> en lugar del código postal. ¿Alguna idea sobre por qué / formas de corregir esto?

Aquí está mi código de prueba:

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) 

Mi salida es:

<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 parece ser más consistente, solo devuelve un único resultado correcto en lugar de dos resultados. El único problema es que Bing no parece querer devolver un código postal, por alguna razón, sino que devuelve una cadena que contiene la dirección y <built-in function zip>.

Comentarios

  • No puedo ' reproducir este comportamiento. Veo códigos postales para cada entrada de ejemplo. ¿Puedes publicar ¿Más información sobre su sistema operativo, versión de Python, versión de geopy, etc …?
  • Por cierto, esta pregunta parece más adecuada para stackoverflow.com.
  • I ' Estoy usando Linux Mint 10, Python 2.7, GeoPy 0.94.1. ¿Qué estás usando? Es extraño que ' funcione para ti, así que geocoders.Bing('DEV KEY').geocode('854 NE 58th St, Seattle') devuelve la dirección completa con un código postal? PS, no
  • Yo ' estoy ejecutando OS X Lion, Python 2.7.2, GeoPy 0.94.2 (que ' es lo que PIP eliminó). Sí, veo los códigos postales reales de los resultados de Bing, no < función integrada zip >.
  • Bien, ese parece ser el problema. Le pedí a un amigo que ejecutara el código y obtuvo los mismos resultados que tú. Parece que el problema, sea lo que sea, se resolvió en GeoPy 0.94.2. Desinstaló 0.94.1, instaló 0.94.2 y ' ya está todo bien.

Respuesta

No estoy seguro de si esto ayudaría, pero podría usar un proveedor de verificación de direcciones que incluya codificación geográfica. Soy un desarrollador de SmartyStreets, un proveedor de este tipo. Consulte este respuesta JSON de ejemplo (desplácese hacia abajo).

Google y Bing son excelentes servicios de aproximación de direcciones, pero puede tener problemas con sus acuerdos de licencia dependiendo de lo que esté tratando de lograr. Ofrecemos un plan gratuito para siempre para los clientes con poco uso, y es absolutamente gratis para las organizaciones sin fines de lucro.

Comentarios

  • Hola, esto parece genial, creo que ' intentaré probar esto. Tienes ' razón, esto es mejor en términos de acuerdos de licencia por mi proyecto. Gracias.
  • Por curiosidad, ¿de dónde provienen sus datos?
  • Nuestros datos provienen del USPS, con el cual SmartyStreets es un Licenciatario certificado por CASS. en.wikipedia.org/wiki/Coding_Accuracy_Support_System

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *