Ich habe zum ersten Mal seit einiger Zeit die Python-Bibliothek ausprobiert, um mich daran zu erinnern. Ich habe "Geopy" und "Geocoder" verwendet. Da ich Google Colab verwendet habe, ist die Version von Python 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
Seit ich es in Colab ausgeführt habe, ist org Google. Ich habe mich gefragt, ob die Adresse im Westen herauskommen würde, aber es scheint, dass sie automatisch mit einem physisch geschlossenen Server verbunden ist. Der Ort, an dem ich den Code ausgeführt habe, ist übrigens die Innenstadt von NY.
{'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'}
#Längengrad Breitengrad
my_location.latlng
#Adresse
my_location.address
Da die Adresse nicht bis zur Adresse angezeigt wird, wenn die Granularität der entsprechenden Daten Stadtgröße usw. ist. Gonyo Gonyo scheint einfach zu sein.
[40.7143, -74.006]
'New York City, New York, US'
code geopy
from geopy.geocoders import Nominatim
#Locator erstellen
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
Ich habe die vom Geocoder angezeigte Adresse zum Vergleich verwendet. Es scheint, dass Geopy detaillierter herauskommt, soweit ich auf Google Maps sehen kann, ist die Genauigkeit der Adresse ziemlich gut. 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'
Schließlich überprüfte ich die Entfernung zwischen dem Tokyo Tower und dem 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
Es war leicht zu löschen. Wenn Sie sich jedoch die Adresse von loc_tokyo ansehen, Die Adresse ist unbekannt: "Tokyo Tower, Tokyo Tower Street, Azabu, Minami Aoyama 6, Minato Ward, Tokio, 105-0011, Japan". Wenn Sie die Standorte von Tokio und NY mit lat & lon richtig einstellen, erhöht sich möglicherweise die Genauigkeit.
10870.216621346974 # km
6754.439461884453 # mile
Recommended Posts