Pregunta

Estoy usando Python y necesito para mapear lugares como "Bloomington, IN" en coordenadas GPS para que pueda medir distancias entre ellos. Lo que las bibliotecas de geocodificación / API recomienda? Soluciones en otros idiomas también son bienvenidos.

¿Fue útil?

Solución

La API de Google Maps admite la codificación geográfica , y el Python Cookbook tiene una ejemplo de acceder a él desde Python (aunque la receta no utilizar la API directamente, sólo simple maps.google.com URL).

Otros consejos

Geopy le permite elegir entre varios geocodificadores (como Google, Yahoo, Virtual Earth).

El servicio web de Google es muy fácil de usar. Sólo hay que poner la consulta en la URL. Para hacer aún más fácil / más perezoso, voy a anunciar descaradamente pygeocoder , un envoltorio de Python para Google geocodificación. A continuación, sólo puede hacer algo como

print Geocoder.geocode("Montreal, Canada")[0].coordinates

para obtener una tupla con coordenadas. También puede hacer cosas como

Geocoder.geocode("sushi, San Francisco").count

o

Geocoder.geocode("sushi, San Francisco")[0].postal_code

Google y Microsoft tienen de API que son muy fácil de conectar a. Hay algunas limitaciones, pero que son bastante generosas. También puede ser que desee mirar a http://geocoder.us/ . No estoy al tanto de cualquier servicio de geocodificación libres que son buenos (y he pasado mucho tiempo buscando!)

Se puede echar un vistazo a GeoLite Ciudad . Es gratis (GPL), pero dicen que no es la más precisa.

  

Con el 99,5% a nivel país y el 79% a nivel de la ciudad de los EE.UU. dentro de un radio de 25 millas

Eso todavía se podría seguir, dependiendo de sus necesidades.

Puede utilizar una API de web, como los mapas de Google para encontrar las coordenadas. Entonces, si usted sólo tiene que calcular las distancias (en línea recta), hay una fórmula se puede aplicar para obtener resultados bastante precisos.

El USC WebGIS Geocoder ( https://webgis.usc.edu ) es gratis. Dispone de API que se pueden llamar desde scripts o puede subir y bases de datos de proceso (mdb, csv, etc.). Los niveles de precisión dependen del lugar donde las direcciones son. Por ejemplo, en el condado de Los Ángeles centroides de paquetes están disponibles, mientras que en otras partes del país sólo tigre / líneas son. Un mapa de cobertura de las fuentes de datos de referencia no está disponible en este momento, pero está en desarrollo. Las herramientas subyacentes se han previsto para ser en el futuro de código abierto de nuevo desarrollo se completa también.

http://www.geonames.org/ el otro día. En realidad se puede descargar todos los datos de los códigos postales, incluyendo lat largo etc / incluso para uso commericial de ahorrar tener que conectarse a fuentes externas. Creo que se puede hacer lo mismo con los nombres de ciudades (datos de código postal ha subrub nombres asociados a ella ya).

Algunas de matemáticas sobre cómo encontrar la distancia "a vuelo de pájaro" - directas de punto a punto se pueden encontrar aquí y aquí (.NET ejemplo) .

Puede tener un mejor aspecto en Geopy module.And es lo suficientemente digno de usar ya que contiene mapa de Google, Yahoo geocodificadores mapa con el que se puede implementar geocodings.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top