[PYTHON] Télécharger les tuiles de l'Institut géographique à partir de la latitude et de la longitude

L'Institut national de recherche foncière fournit des cartes, des photographies aériennes, etc. sous la forme de vignette Institut géographique. Pour l'obtenir, nous avons besoin d'une valeur de coordonnée appelée coordonnées de tuile qui n'est pas la latitude et la longitude, donc nous la calculons. J'ai emprunté le code sur le wiki OpenStreetMap.

#from
#https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Python

import math

#Calculer les coordonnées des tuiles à partir de la latitude et de la longitude
def deg2num(lat_deg, lon_deg, zoom):
    lat_rad = math.radians(lat_deg)
    n = 2.0 ** zoom
    xtile = int((lon_deg + 180.0) / 360.0 * n)
    ytile = int((1.0 - math.asinh(math.tan(lat_rad)) / math.pi) / 2.0 * n)
    return (xtile, ytile)

#Je ne vais pas l'utiliser cette fois, mais des coordonnées des tuiles à la latitude et à la longitude
def num2deg(xtile, ytile, zoom):
    n = 2.0 ** zoom
    lon_deg = xtile / n * 360.0 - 180.0
    lat_rad = math.atan(math.sinh(math.pi * (1 - 2 * ytile / n)))
    lat_deg = math.degrees(lat_rad)
    return (lat_deg, lon_deg)

Le téléchargement de la vignette de l'Institut géographique ressemble à ceci

import requests
def download_from_gsi(z, x, y, def_url, fname):
    url = def_url.format(z,x,y)
    response = requests.get(url)
    if response.status_code == 200:
        image = response.content
        with open(fname, "wb") as f:
            f.write(image)
    else:
        raise Exception("{} returned {}".format(response.url, response.status_code))

Comment l'utiliser, c'est comme ça. Cet exemple est une photographie aérienne des coordonnées de l'arbre du ciel.

#z est le niveau de zoom.18 est l'état le plus étendu
z = 17
lat = 35.710163
lon = 139.8105428

def_url = "https://cyberjapandata.gsi.go.jp/xyz/ort/{}/{}/{}.jpg "
fname ="test.png "

x,y = deg2num(lat, lon, z)

download_from_gsi(z, x, y, def_url, fname)

En conséquence, j'ai eu une image comme celle-ci. test.png C'est une image de l'époque où il était encore en construction.

Pour def_url, reportez-vous à l'url dans Liste des tuiles de l'Institut géographique. (Notez que cela peut être jpg ou png selon l'objet.)

Recommended Posts

Télécharger les tuiles de l'Institut géographique à partir de la latitude et de la longitude
Obtenez l'adresse à partir de la latitude et de la longitude
Trouvez la distance (en tenant compte de la rondeur de la terre) de la latitude et de la longitude.
Trouvez le waypoint à partir de la latitude et de la longitude (en tenant compte de la rondeur de la terre).
[GPS] Calculez la distance, l'angle azimutal et l'angle d'élévation à partir de la latitude et de la longitude GPS à l'aide de pyproj
Répandre les tuiles de la carte de l'Institut géographique avec Python
Obtenez des informations de localisation (latitude et longitude) à partir de l'adresse. Géocodage en Python ~ Géocodeur et pydams ~
Donnez les données de séquence de points de latitude et de longitude et essayez d'identifier la route à partir des données d'OpenStreetMap
YOLP: extraire la latitude et la longitude avec l'API Yahoo! Geocoder.