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.
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
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)
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