17 vector tile layer
In [1]:
Copied!
# !pip install leafmap
# !pip install leafmap
This notebook example requires the ipyleaflet plotting backend. Folium is not supported.
In [2]:
Copied!
from leafmap import leafmap
from leafmap import leafmap
Create an interactive map.
In [3]:
Copied!
m = leafmap.Map(center=(52.204793, 360.121558), zoom=9)
m = leafmap.Map(center=(52.204793, 360.121558), zoom=9)
The URL to the vector tile.
In [4]:
Copied!
url = "https://tile.nextzen.org/tilezen/vector/v1/512/all/{z}/{x}/{y}.mvt?api_key=gCZXZglvRQa6sB2z7JzL1w"
url = "https://tile.nextzen.org/tilezen/vector/v1/512/all/{z}/{x}/{y}.mvt?api_key=gCZXZglvRQa6sB2z7JzL1w"
Attribution of the vector tile.
In [5]:
Copied!
attribution = "Nextzen"
attribution = "Nextzen"
One can customize the vector tile layer style if needed. More info can be found at https://ipyleaflet.readthedocs.io/en/latest/layers/vector_tile.html
Conditional styling (example here) currently works only with folium. Use:
import leafmap.foliumap as leafmap
In [6]:
Copied!
water_style = dict(
fill="true",
weight=1,
fillColor="#06cccc",
color="#06cccc",
fillOpacity=0.2,
opacity=0.4,
)
waterway_style = dict(
weight=1, fillColor="#2375e0", color="#2375e0", fillOpacity=0.2, opacity=0.4
)
admin_style = dict(
weight=1, fillColor="pink", color="pink", fillOpacity=0.2, opacity=0.4
)
landcover_style = dict(
fill="true",
weight=1,
fillColor="#53e033",
color="#53e033",
fillOpacity=0.2,
opacity=0.4,
)
landuse_style = dict(
fill="true",
weight=1,
fillColor="#e5b404",
color="#e5b404",
fillOpacity=0.2,
opacity=0.4,
)
park_style = dict(
fill="true",
weight=1,
fillColor="#84ea5b",
color="#84ea5b",
fillOpacity=0.2,
opacity=0.4,
)
boundary_style = dict(
weight=1, fillColor="#c545d3", color="#c545d3", fillOpacity=0.2, opacity=0.4
)
aeroway = dict(
weight=1, fillColor="#51aeb5", color="#51aeb5", fillOpacity=0.2, opacity=0.4
)
road = dict(
weight=1, fillColor="#f2b648", color="#f2b648", fillOpacity=0.2, opacity=0.4
)
transit = dict(
weight=0.5, fillColor="#f2b648", color="#f2b648", fillOpacity=0.2, opacity=0.4
)
buildings = dict(
fill="true",
weight=1,
fillColor="#2b2b2b",
color="#2b2b2b",
fillOpacity=0.2,
opacity=0.4,
)
water_name = dict(
weight=1, fillColor="#022c5b", color="#022c5b", fillOpacity=0.2, opacity=0.4
)
transportation_name = dict(
weight=1, fillColor="#bc6b38", color="#bc6b38", fillOpacity=0.2, opacity=0.4
)
place = dict(
weight=1, fillColor="#f20e93", color="#f20e93", fillOpacity=0.2, opacity=0.4
)
housenumber = dict(
weight=1, fillColor="#ef4c8b", color="#ef4c8b", fillOpacity=0.2, opacity=0.4
)
poi = dict(weight=1, fillColor="#3bb50a", color="#3bb50a", fillOpacity=0.2, opacity=0.4)
earth = dict(
fill="true",
weight=1,
fillColor="#c0c0c0",
color="#c0c0c0",
fillOpacity=0.2,
opacity=0.4,
)
vector_tile_layer_styles = dict(
water=water_style,
waterway=waterway_style,
admin=admin_style,
andcover=landcover_style,
landuse=landuse_style,
park=park_style,
boundaries=boundary_style,
aeroway=aeroway,
roads=road,
transit=transit,
buildings=buildings,
water_name=water_name,
transportation_name=transportation_name,
places=place,
housenumber=housenumber,
pois=poi,
earth=earth,
)
water_style = dict(
fill="true",
weight=1,
fillColor="#06cccc",
color="#06cccc",
fillOpacity=0.2,
opacity=0.4,
)
waterway_style = dict(
weight=1, fillColor="#2375e0", color="#2375e0", fillOpacity=0.2, opacity=0.4
)
admin_style = dict(
weight=1, fillColor="pink", color="pink", fillOpacity=0.2, opacity=0.4
)
landcover_style = dict(
fill="true",
weight=1,
fillColor="#53e033",
color="#53e033",
fillOpacity=0.2,
opacity=0.4,
)
landuse_style = dict(
fill="true",
weight=1,
fillColor="#e5b404",
color="#e5b404",
fillOpacity=0.2,
opacity=0.4,
)
park_style = dict(
fill="true",
weight=1,
fillColor="#84ea5b",
color="#84ea5b",
fillOpacity=0.2,
opacity=0.4,
)
boundary_style = dict(
weight=1, fillColor="#c545d3", color="#c545d3", fillOpacity=0.2, opacity=0.4
)
aeroway = dict(
weight=1, fillColor="#51aeb5", color="#51aeb5", fillOpacity=0.2, opacity=0.4
)
road = dict(
weight=1, fillColor="#f2b648", color="#f2b648", fillOpacity=0.2, opacity=0.4
)
transit = dict(
weight=0.5, fillColor="#f2b648", color="#f2b648", fillOpacity=0.2, opacity=0.4
)
buildings = dict(
fill="true",
weight=1,
fillColor="#2b2b2b",
color="#2b2b2b",
fillOpacity=0.2,
opacity=0.4,
)
water_name = dict(
weight=1, fillColor="#022c5b", color="#022c5b", fillOpacity=0.2, opacity=0.4
)
transportation_name = dict(
weight=1, fillColor="#bc6b38", color="#bc6b38", fillOpacity=0.2, opacity=0.4
)
place = dict(
weight=1, fillColor="#f20e93", color="#f20e93", fillOpacity=0.2, opacity=0.4
)
housenumber = dict(
weight=1, fillColor="#ef4c8b", color="#ef4c8b", fillOpacity=0.2, opacity=0.4
)
poi = dict(weight=1, fillColor="#3bb50a", color="#3bb50a", fillOpacity=0.2, opacity=0.4)
earth = dict(
fill="true",
weight=1,
fillColor="#c0c0c0",
color="#c0c0c0",
fillOpacity=0.2,
opacity=0.4,
)
vector_tile_layer_styles = dict(
water=water_style,
waterway=waterway_style,
admin=admin_style,
andcover=landcover_style,
landuse=landuse_style,
park=park_style,
boundaries=boundary_style,
aeroway=aeroway,
roads=road,
transit=transit,
buildings=buildings,
water_name=water_name,
transportation_name=transportation_name,
places=place,
housenumber=housenumber,
pois=poi,
earth=earth,
)
Add the vector tile layer to the map.
In [7]:
Copied!
m.add_vector_tile_layer(url, vector_tile_layer_styles, attribution=attribution)
m
m.add_vector_tile_layer(url, vector_tile_layer_styles, attribution=attribution)
m