J'ai essayé la bibliothèque Python pour la première fois depuis un moment, donc pour rappel.
J'ai utilisé geopy
et geocoder
.
Depuis que j'ai utilisé Google Colab, la version de python est 3.
https://colab.research.google.com/drive/1LlQ2131p4JV3IY9xOyZcGp_Wg3fRk2p3
$ pip install geopy geocoder
https://github.com/geopy/geopy https://github.com/DenisCarriere/geocoder
code geocoder
import geocoder
my_location = geocoder.ip('me')
my_location.geojson
Je l'ai exécuté dans Colab, donc org est Google. Je me demandais si l'adresse à l'ouest sortirait, mais il semble qu'elle soit automatiquement connectée à un serveur physiquement proche. Au fait, l'endroit où j'ai exécuté le code est le centre-ville de New York.
{'features': [{'geometry': {'coordinates': [-74.006, 40.7143],
'type': 'Point'},
'properties': {'address': 'New York City, New York, US',
'city': 'New York City',
'country': 'US',
'hostname': '169.205.229.35.bc.googleusercontent.com',
'ip': '35.229.205.169',
'lat': 40.7143,
'lng': -74.006,
'ok': True,
'org': 'AS15169 Google LLC',
'postal': '10004',
'raw': {'city': 'New York City',
'country': 'US',
'hostname': '169.205.229.35.bc.googleusercontent.com',
'ip': '35.229.205.169',
'loc': '40.7143,-74.0060',
'org': 'AS15169 Google LLC',
'postal': '10004',
'readme': 'https://ipinfo.io/missingauth',
'region': 'New York',
'timezone': 'America/New_York'},
'state': 'New York',
'status': 'OK'},
'type': 'Feature'}],
'type': 'FeatureCollection'}
#longitude latitude
my_location.latlng
#adresse de rue
my_location.address
Puisque l'adresse n'apparaît pas à la hauteur de l'adresse, si la granularité des données correspondantes est la taille de la ville, etc. Gonyo Gonyo semble être facile à faire.
[40.7143, -74.006]
'New York City, New York, US'
code geopy
from geopy.geocoders import Nominatim
#Créer un localisateur
geolocator = Nominatim(user_agent="user", timeout=10)
location = geolocator.geocode('New York City, New York, US')
location.latitude, location.longitude
location = geolocator.reverse("40.7127281 -74.0060152")
location.address
J'ai utilisé l'adresse affichée par le géocodeur à des fins de comparaison. Il semble que geopy soit plus détaillé, d'après ce que je peux voir sur Google Maps, la précision de l'adresse est assez bonne. https://www.google.com/maps/place/40%C2%B042'45.8%22N+74%C2%B000'21.7%22W/@40.7127281,-74.0066803,18z/data=!3m1!4b1!4m5!3m4!1s0x0:0x0!8m2!3d40.7127281!4d-74.0060152
(40.7127281, -74.0060152)
'New York City Hall, 260, Broadway, Civic Center, Manhattan Community Board 1, Manhattan, New York County, New York, 10000, United States of America'
Enfin, j'ai vérifié la distance entre la tour de Tokyo et Times Square.
from geopy import distance
loc_tokyo = geolocator.geocode("Tokyo tower, Tokyo, Japan")
loc_times_square = geolocator.geocode("Times Square, Manhattan, NY")
src = (loc_tokyo.latitude, loc_tokyo.longitude)
dist = (loc_times_square.latitude, loc_times_square.longitude)
distance.distance(src, dist).km
distance.distance(src, dist).miles
C'était facile à éteindre. Cependant, si vous regardez l'adresse de loc_tokyo, C'est devenu une adresse inconnue, «Tokyo Tower, Tokyo Tower Street, Azabu, Minami Aoyama 6, Minato Ward, Tokyo, 105-0011, Japan (Japan)». Peut-être que si vous définissez correctement les emplacements de Tokyo et de New York avec lat & lon, la précision augmentera.
10870.216621346974 # km
6754.439461884453 # mile
Recommended Posts