folium で、
地図の タイル とは 何か?
わから
地図タイルにで、<wbr>地図タイルってなんなの<wbr>
に
folium で 指定できる タイルに ついて
example が
Folium Map Tiles - deparkes
また、TilesExample.ipynb
と
folium/TilesExample.ipynb at master · python-visualization/folium
exmaple では、tiles='OpenStreetMap'
、tiles='Mapbox Bright'
等で
使用できる ビルドインタイル
以下の
folium/folium/templates/tiles at master · python-visualization/folium
- mapboxbright
- cartodbdark_matter
- cartodbpositron
- cloudmade
- mapbox
- mapboxcontrolroom
- openstreetmap
- stamenterrain
- stamentoner
- stamenwatercolor
tiles='Mapbox Bright'
だと、tiles='mapboxbright'
でも
jupyter で 動かしてみる
以下、
API キーを
version の 出力
import os import folium print(folium.__version__)
0.5.0
OpenStreetMap を タイルに 指定する
lon, lat = -38.625, -12.875 zoom_start = 8 m = folium.Map(location=[lat, lon], tiles='OpenStreetMap', zoom_start=zoom_start) m
Mapbox Bright を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='Mapbox Bright', zoom_start=zoom_start) m
mapboxbright を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='mapboxbright', zoom_start=zoom_start) m
cartodbdark_matter を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='cartodbdark_matter', zoom_start=zoom_start) m
cartodbpositron を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='cartodbpositron', zoom_start=zoom_start) m
cloudmade を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='cloudmade', zoom_start=zoom_start) m
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-15-56f01905df85> in <module>() ----> 1 m = folium.Map(location=[lat, lon], tiles='cloudmade', zoom_start=zoom_start) 2 m /Library/Python/2.7/site-packages/folium/map.pyc in __init__(self, location, width, height, left, top, position, tiles, API_key, max_zoom, min_zoom, zoom_start, world_copy_jump, no_wrap, attr, min_lat, max_lat, min_lon, max_lon, max_bounds, detect_retina, crs, control_scale, prefer_canvas, no_touch, disable_3d, subdomains, png_enabled) 201 no_wrap=no_wrap, attr=attr, 202 API_key=API_key, detect_retina=detect_retina, --> 203 subdomains=subdomains 204 ) 205 /Library/Python/2.7/site-packages/folium/map.pyc in add_tile_layer(self, tiles, name, API_key, max_zoom, min_zoom, attr, active, detect_retina, no_wrap, subdomains, **kwargs) 297 detect_retina=detect_retina, 298 subdomains=subdomains, --> 299 no_wrap=no_wrap) 300 self.add_child(tile_layer, name=tile_layer.tile_name) 301 /Library/Python/2.7/site-packages/folium/map.pyc in __init__(self, tiles, min_zoom, max_zoom, attr, API_key, detect_retina, name, overlay, control, no_wrap, subdomains) 439 self.tiles = ''.join(tiles.lower().strip().split()) 440 if self.tiles in ('cloudmade', 'mapbox') and not API_key: --> 441 raise ValueError('You must pass an API key if using Cloudmade' 442 ' or non-default Mapbox tiles.') 443 templates = list(self._env.list_templates( ValueError: You must pass an API key if using Cloudmade or non-default Mapbox tiles.
API Key が
mapbox を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='mapbox', zoom_start=zoom_start) m
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-16-3f5fb80e95a5> in <module>() ----> 1 m = folium.Map(location=[lat, lon], tiles='mapbox', zoom_start=zoom_start) 2 m /Library/Python/2.7/site-packages/folium/map.pyc in __init__(self, location, width, height, left, top, position, tiles, API_key, max_zoom, min_zoom, zoom_start, world_copy_jump, no_wrap, attr, min_lat, max_lat, min_lon, max_lon, max_bounds, detect_retina, crs, control_scale, prefer_canvas, no_touch, disable_3d, subdomains, png_enabled) 201 no_wrap=no_wrap, attr=attr, 202 API_key=API_key, detect_retina=detect_retina, --> 203 subdomains=subdomains 204 ) 205 /Library/Python/2.7/site-packages/folium/map.pyc in add_tile_layer(self, tiles, name, API_key, max_zoom, min_zoom, attr, active, detect_retina, no_wrap, subdomains, **kwargs) 297 detect_retina=detect_retina, 298 subdomains=subdomains, --> 299 no_wrap=no_wrap) 300 self.add_child(tile_layer, name=tile_layer.tile_name) 301 /Library/Python/2.7/site-packages/folium/map.pyc in __init__(self, tiles, min_zoom, max_zoom, attr, API_key, detect_retina, name, overlay, control, no_wrap, subdomains) 439 self.tiles = ''.join(tiles.lower().strip().split()) 440 if self.tiles in ('cloudmade', 'mapbox') and not API_key: --> 441 raise ValueError('You must pass an API key if using Cloudmade' 442 ' or non-default Mapbox tiles.') 443 templates = list(self._env.list_templates( ValueError: You must pass an API key if using Cloudmade or non-default Mapbox tiles.
API キーが
mapboxcontrolroom を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='mapboxcontrolroom', zoom_start=zoom_start) m
openstreetmap を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='openstreetmap', zoom_start=zoom_start) m
defalut の
stamenterrain を タイルに 指定する
m = folium.Map(location=[lat, lon], tiles='stamenterrain', zoom_start=zoom_start) m
stamentoner を タイル に 指定する
m = folium.Map(location=[lat, lon], tiles='stamentoner', zoom_start=zoom_start) m
stamenwatercolor を タイル に 指定する
m = folium.Map(location=[lat, lon], tiles='stamenwatercolor', zoom_start=zoom_start) m
ビルドインタイル 以外で 指定可能な タイルに ついて
folium と
Using WMS and TMS services - Leaflet - a JavaScript library for interactive maps Leaflet では、
検索してadd_wms_layer
と
Adding WMS layers to your folium maps
上記、
地図タイルの 提供してくれる サービス
無料で
地理院地図|地理院タイル一覧
国土地理院の地図タイルです。 基本的には 無料で 使えます。 タイルに より ライセンスが 違いますので、 行政サイトで ウェブ地図を 使う際の 注意点などまとめ の 地理院地図
や、国土地理院コンテンツ利用規約|国土地理院 を 一読しておいた ほうが よいです。 Leaflet Provider Demo
Leaflet のDemo ですが、 zxy形式 の 地図タイル URL が 多数記載されています。
地図提供プロバイダーごとに利用規約等は 異なりますので、 使用する 際に 確認が 必要かと 思います。
探す過程では、
行政サイトで
jupyter で 動かしてみる
jupyter で
version の 出力
import os import folium print(folium.__version__)
0.5.0
国土地理院 の タイル を 指定する 空中写真(1961~1964年)
zoom_start = 15 m = folium.Map(location=[35.658593, 139.745441], tiles='https://cyberjapandata.gsi.go.jp/xyz/ort_old10/{z}/{x}/{y}.png', attr='国土地理院 空中写真(1961~1964年)', zoom_start=zoom_start) m
出典:国土地理院ウェブサイト 地理院地図|地理院タイル一覧
国土地理院の タイルを 指定する 植生(樹木被覆率)
zoom_start = 5 m = folium.Map(location=[35.658593, 139.745441], tiles='https://cyberjapandata.gsi.go.jp/xyz/gmld_ptc2/{z}/{x}/{y}.png', attr='国土地理院 植生(樹木被覆率)', zoom_start=zoom_start) m
出典:国土地理院ウェブサイト 地理院地図|地理院タイル一覧
tamen TonerLite を タイル に 指定する
zoom_start = 3 m = folium.Map(location=[35.658593, 139.745441], tiles='https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png', attr= 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — Map data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>', zoom_start=zoom_start) m
サンプルコードの'https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.{ext}'
です。
'{ext}'
を'https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.ping'
と
HikeBike.HikeBike を タイルに 指定する
zoom_start = 5 m = folium.Map(location=[35.658593, 139.745441], tiles='http://{s}.tiles.wmflabs.org/hikebike/{z}/{x}/{y}.png', attr= '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>', zoom_start=zoom_start) m
まとめ
folium で
default で
指定できる タイルは、 folium/folium/templates/tiles at master · python-visualization/folium を 確認する 国土地理院の
地図タイルも 使うことができる。 leaflet で
使える ものは 使用可能なので、 Leaflet Provider Demo に 記載されている ものは 使える。 タイル プロバイダ で
API キーの 発行が 必要な ものも ある。 以上です。
コメント