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