Versuchen Sie, Breiten- / Längen- und Weltkoordinaten mit Python ineinander umzuwandeln

Was ich machen wollte

Was ich getan habe

Basierend auf den Informationen in http://www.trail-note.net/tech/coordinate/ von TRAIL NOTE habe ich versucht, daraus eine Funktion zu machen, die Breiten- / Längengrade und Weltkoordinaten mit Python konvertiert.

Implementierung

Ich habe gerade den Inhalt von ↑ kopiert.

from math import pi
from math import tanh
from math import sin
from math import asin
from numpy import arctanh

# refer from http://www.trail-note.net/tech/coordinate/

def tile2latlon(x, y, z):
    L = 85.05112878
    lon = ((x / 2.0**(z+7) )-1) * 180
    lat = 180/pi * (asin(tanh(-pi/2**(z+7)*y + arctanh(sin(pi/180*L)))))
    return [lat, lon]

def latlon2tile2(lat, lon, z):
    L = 85.05112878
    x = int((lon/180 + 1) * 2**(z+7))
    y = int( (2**(z+7) / pi * ( -arctanh(sin(pi*lat/180)) + arctanh(sin(pi*L/180)) ) ))
    return [x,y]

Bestätigung

Geben Sie einen bekannten Breiten- und Längengrad ein und überprüfen Sie ihn auf Karten des Nationalen Landforschungsinstituts.

#simbashi
lat = 35.666280
lon = 139.758375
# lat = 30.335927
# lon = 130.504283

pix = 256
# lat/lon to tile
for z in range(15,19):
    a,b = latlon2tile2(lat,lon,z)
    print [a,b]
    print 'http://cyberjapandata.gsi.go.jp/xyz/std/{0}/{1:d}/{2:d}.png'.format(z,a/pix,b/pix)
    a,b = tile2latlon(a,b,z)
    print [a,b]

Bei der Ausführung wird es so ausgegeben, dass es dem ursprünglichen Lat / Long entspricht, und die Genauigkeit nimmt mit zunehmender Zoomstufe zu. Ich habe den Standort auf der aktuellen Karte bestätigt. (Karte des National Land Research Institute ist bis Zoomstufe 18)

[7450910, 3303678]
http://cyberjapandata.gsi.go.jp/xyz/std/15/29105/12904.png
[35.66629207402928, 139.75836753845215]
[14901820, 6607356]
http://cyberjapandata.gsi.go.jp/xyz/std/16/58210/25809.png
[35.66629207402928, 139.75836753845215]
[29803640, 13214713]
http://cyberjapandata.gsi.go.jp/xyz/std/17/116420/51619.png
[35.66628335763601, 139.75836753845215]
[59607281, 26429426]
http://cyberjapandata.gsi.go.jp/xyz/std/18/232840/103239.png
[35.66628335763601, 139.75837290287018]

Artikel müssen bestätigt werden

――Ich verstehe das Geografiesystem nicht wirklich

Recommended Posts

Versuchen Sie, Breiten- / Längen- und Weltkoordinaten mit Python ineinander umzuwandeln
Längen- und Breitengradkoordinaten ↔ UTM-Koordinatenkonvertierung mit Python
[Python] Konvertieren Sie Allzweckcontainer und Klasse ineinander
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen
Versuchen Sie, Facebook mit Python zu betreiben
Versuchen Sie, die cloudmonkey-CLI in python3 -1 zu konvertieren
Versuchen Sie, Google Map und Geography Map mit Python anzuzeigen
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Fraktal zum Erstellen und Spielen mit Python
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Versuchen Sie, Foldl und Foldr mit Python: Lambda zu machen. Auch Zeitmessung
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
MessagePack-Versuchen Sie, Java und Python mit RPC zu verbinden
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuche mit EV3 und PC zu kommunizieren! (MQTT)
Begrüßen Sie die Welt mit Python mit IntelliJ
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
[Python-Lernteil 3] Konvertieren Sie Pandas DataFrame, Series und Standard List ineinander
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Geben Sie Breiten- und Längengradpunktsequenzdaten an und versuchen Sie, die Straße anhand von OpenStreetMap-Daten zu identifizieren
Prozedur zum Laden von MNIST mit Python und zur Ausgabe an png
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Ich möchte die Optimierung mit Python und CPlex behandeln
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
YOLP: Extrahieren Sie Längen- und Breitengrade mit der Yahoo! Geocoder-API.
Konvertieren Sie Breite, Länge und GPS-Höhe in dreidimensionale orthogonale Koordinaten
Versuchen Sie es mit Python.
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Versuchen Sie es mit GUI, PyQt in Python
Bildschirm und geteilter Bildschirm mit Python- und SSH-Anmeldung am Remote-Server
Probieren Sie Amazon Simple Workflow Service (SWF) mit Python und boto3 aus
Versuchen Sie, verschiedene Informationen anzuzeigen, die für das Debuggen mit Python nützlich sind
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
Versuchen Sie, iTunes und Hue of Collection Case mit MQTT zu verknüpfen
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Konvertieren Sie Videos mit ffmpeg + python + opencv in Schwarzweiß
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Es ist Halloween, also werde ich versuchen, es mit Python zu verstecken
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten