[PYTHON] Überprüfen Sie die Koordinaten auf Google Map mit Geocoder

Auf einer bestimmten Website hatte ich das Gefühl, dass die Flagge der Google-Karte der Einrichtung ausgeschaltet war Vergleichen Sie den aus der Adresse und dem Namen der Einrichtung berechneten Breiten- und Längengrad mit dem in Google Maps angegebenen Breiten- und Längengrad.

Überprüfen Sie den Breiten- und Längengrad des Tokyo Tower auf der Geocoding-Site

Wenn Sie den Tokyo Tower auf der Geocoding-Site durchsuchen, finden Sie die Adresse und die Koordinaten.

-105-0011 4-2-8 Shiba Park, Minato-ku, Tokyo Tokyo Tower Koordinaten: 35.658581, 139.745433

Holen Sie sich Längen- und Breitengrad von der Adresse mit Geocoder

Installieren Sie zuerst den Geocoder.

pip install geocoder

Python-Code ist sehr einfach.

geocode.py


import geocoder
n = "Tokyo Turm"
a = "4-2-8 Shiba Park, Minato-ku, Tokio"
p = [35.658581, 139.745433]

g = geocoder.google(a)
print(a, p,"<-->", g.latlng)

g = geocoder.google(n)
print(n, p,"<-->", g.latlng)

Berechnen Sie den Abstand zwischen Punkten

Allein damit bin ich mir nicht sicher, wie viel es kostet [Python-Code, der die Entfernung von Längen- und Breitengrad zweier Punkte berechnet] Leihen Sie sich aus (http://blogs.yahoo.co.jp/qga03052/33991636.html) und berechnen Sie die Entfernung.

geocode.py


import geocoder
import math

#Berechnung des Abstandes zwischen zwei Punkten(Python)
# http://blogs.yahoo.co.jp/qga03052/33991636.html
def deg2rad(deg):
    return( deg * (2 * math.pi) / 360 )

def Hubeny(lat1, lon1, lat2, lon2) :
    a =6378137.000
    b =6356752.314140
    e =math.sqrt( (a**2 - b**2) / a**2 )
    e2 =e**2
    mnum =a * (1 - e2)

    my =deg2rad((lat1+lat2) /2.0)
    dy =deg2rad( lat1-lat2)
    dx =deg2rad( lon1-lon2)
    sin =math.sin(my)
    w =math.sqrt(1.0-e2 * sin *sin)
    m =mnum /(w *w *w)
    n =a/w
    dym =dy*m
    dxncos=dx*n*math.cos(my)
    return( math.sqrt( dym**2 + dxncos**2) )

n = "Tokyo Turm"
a = "4-2-8 Shiba Park, Minato-ku, Tokio"
p = [35.658581, 139.745433]

g = geocoder.google(a)
dist = Hubeny(p[0], p[1], g.latlng[0],g.latlng[1])
print(a, p,"<-->", g.latlng,dist)

g = geocoder.google(n)
dist = Hubeny(p[0], p[1], g.latlng[0],g.latlng[1])
print(n, p,"<-->", g.latlng,dist)

Infolgedessen gab es eine Abweichung von mehreren Metern, als ich dachte, dass sie perfekt zusammenpassen würden.

4-2-8 Shiba Park, Minato-ku, Tokio[35.658581, 139.745433] <--> [35.6585817, 139.7454636] 2.771940296311124
Tokyo Turm[35.658581, 139.745433] <--> [35.6585696, 139.745484] 4.78817294783698

Dieser Grad der Abweichung ist ausreichend, aber da es auf Google Map eine Einrichtung gab, die mehrere hundert Meter entfernt war, Es ist eine gute Idee, das relevante Teil mit BeautifulSoap usw. zu verschrotten und zu überprüfen.

> var myLatLng = new google.maps.LatLng(37.695042, 140.127955);

Weil es oft in beschrieben wird

r = re.compile(r'LatLng\((.*),(.*)\)')
m = re.search(r, str)
   if m:
      p = [float(m.group(1)),float(m.group(2))]```

Es scheint, dass Sie es mit dem regulären Ausdruck finden können.

Recommended Posts

Überprüfen Sie die Koordinaten auf Google Map mit Geocoder
Zeigen Sie mehrere Markierungen auf Google Map an
Spielen Sie mit Turtle auf Google Colab
Einführung der Google Map API mit Schienen
Kartenmietinformationen auf einer Karte mit Python
Maschinelles Lernen mit Pytorch in Google Colab
Folium: Visualisieren Sie Daten auf einer Karte mit Python
Speichern Sie den Tweet von Twitter mit Geo als CSV und zeichnen Sie ihn auf Google Map.
Visualisiere grib2 auf einer Karte mit Python (matplotlib)
PIL in Python unter Windows8 (für Google App Engine)
[Ruby on Rails] Google Map mehrere Pins, Sprechblasen, Links
Zeigen Sie die mit Rails gem'geocoder 'eingegebene Adresse in Google Map an
Stellen Sie Go-Apps mit GitHub-Aktionen für Google App Engine bereit
Deep Learning mit Shogi AI auf Mac und Google Colab