Geopy - Toolbox para codificación geográfica

imagen / NASA's Marshall Space Flight Center
  
24 de Febrero de 2016   1  

Geopy hace que sea fácil para los desarrolladores de Python localizar las coordenadas de direcciones , ciudades , países y puntos de referencia en todo el mundo utilizando geocodificadores de terceros y otras fuentes de datos.

Geopy incluye clases de codificación geográfica para OpenStreetMap Nominatim, ESRI ArcGIS, API de codificación geográfica de Google (V3), Baidu Maps, Bing Maps API, Yahoo! PlaceFinder, Yandex, IGN France, Geonombres, NaviData, OpenMapQuest, What3Words, OpenCage, SmartyStreets, geocoder.us, y GeocodeFarm geocoder services.

Instalación.

La instalación es muy sencilla, vasta con usar pip para tenerlo en nuestro equipo local:

pip install geopy

 

Ejemplos de uso.

 
Geocoding

Geolocalizar una consulta utilizando dirección y coordenadas.

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim()
>>> location = geolocator.geocode("175 5th Avenue NYC")
>>> print(location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)
>>> print(location.raw)
{'place_id': '9167009604', 'type': 'attraction', ...}

Encontrar una dirección correspondiente a un conjunto de coordenadas

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim()
>>> location = geolocator.reverse("52.509669, 13.376294")
>>> print(location.address)
Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union
>>> print((location.latitude, location.longitude))
(52.5094982, 13.3765983)
>>> print(location.raw)
{'place_id': '654513', 'osm_type': 'node', ...}
 
Medición de distancia

Geopy puede calcular la distancia geodésica entre dos puntos utilizando las fórmulas distancia Vincenty o distancia ortodrómica, su valor predeterminado es Vincenty disponible en la clase geopy.distance.distance, y la distancia calculada disponible como atributos (por ejemplo, millas, metros, etc. ).

Aquí un ejemplo de uso de distancia Vincenty:

>>> from geopy.distance import vincenty
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(vincenty(newport_ri, cleveland_oh).miles)
538.3904451566326

Usando distancia great-circle

>>> from geopy.distance import great_circle
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(great_circle(newport_ri, cleveland_oh).miles)
537.1485284062816

 

La documentación completa la pueden encontrar en Read the Docs

 



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas

Temas relacionados