VectorGrid.protobuf plugin for Folium
Report Bug
·
Request Feature
Now part of folium plugins as of v0.13.0.
This library fills a hole in foliums plugin eco-system. Wrapping Leaflet.VectorGrid into a folium plugin, users can now add vector tile layers (e.g. Mapbox, OpenMapTiles) to their folium maps.
Install Poetry.
poetry add git+https://github.com/iwpnd/folium-vectorgrid.git
pip install folium-vectorgrid
- Clone and install
git clone https://github.com/iwpnd/folium-vectorgrid.git poetry install
- Test it!
poe test # or poetry run pytest .
from folium_vectorgrid import VectorGridProtobuf
import folium
url = "https://free-{s}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf?token={token}"
m = folium.Map()
options = {
"subdomain": "my_subdomain",
"token": "my_token",
"vectorTileLayerStyles": {
"my_layer":{
"fill": True,
"weight": 1,
"fillColor": 'green',
"color": 'black',
"fillOpacity":0.6,
"opacity":0.6
},
}
}
vc = VectorGridProtobuf(url, "folium_layer_name", options)
m.add_child(vc)
m
Or with conditional styling
import folium
from folium_vectorgrid import VectorGridProtobuf
m = folium.Map()
url = "https://free-{s}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf?token={token}"
options = '''{
"subdomain": "tilehosting",
"token": "af6P2G9dztAt1F75x7KYt0Hx2DJR052G",
"vectorTileLayerStyles": {
"my_layer": function(f) {
if (f.type === 'parks') {
return {
"fill": true,
"weight": 1,
"fillColor": 'green',
"color": 'black',
"fillOpacity":0.6,
"opacity":0.6
};
}
if (f.type === 'water') {
return {
"fill": true,
"weight": 1,
"fillColor": 'purple',
"color": 'black',
"fillOpacity":0.6,
"opacity":0.6
};
}
}
}
}'''
VectorGridProtobuf(url,"layer_name",options).add_to(m)
m
Distributed under the MIT License. See LICENSE
for more information.
Benjamin Ramser - @imwithpanda - ahoi@iwpnd.pw
Project Link: https://github.com/iwpnd/folium-vector