我有一个 .geojson 文件,其中包含某个国家/地区的边界 我正在创建这样的大叶地图:
m = folium.Map(location=[51.026, 4.476], zoom_start=9)
folium.GeoJson('BELGIUM_-_Municipalities.geojson', name='Municipalities', style_function=style_function).add_to(m)
如何将边界外的地图背景以灰度显示,同时保持边界内的底图颜色? 基本上在下面的地图中,我想将比利时边界之外的所有内容都以灰度显示
.
模拟您正在寻找的内容的一个可能的选择是使用 Cartodb Position 作为主要底图,然后添加
WmsTileLayer
(类似于 NGI 服务提供的地形图层):
m = folium.Map(
location=[51.026, 4.476] zoom_start=9, tiles="cartodb positron",
)
folium.WmsTileLayer(
url="https://cartoweb.wms.ngi.be/service",
fmt="image/png", layers="topo", transparent=True,
).add_to(m)
openstreetmap-carto-be:
的图块,不包括比利时以外的区域:
m = folium.Map(
location=[51.026, 4.476], zoom_start=9,
tiles="https://tile.openstreetmap.be/osmbe/{z}/{x}/{y}.png",
attr='© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, Tiles courtesy of <a href="https://geo6.be/">GEO-6</a>',
)
NB:两种方法都独立于数据的范围/边界(多边形、点等)。
使用的输入:BELGIUM_-_Municipalities.geojson
import folium
import json
def style_function(x):
return {
"fillColor": "cyan",
"fillOpacity": 0.3,
"color": "black",
"opacity": 0.7,
"weight": 1,
}
with open("BELGIUM_-_Municipalities.geojson", "r") as f:
data = json.load(f)
folium.GeoJson(
data,
name="Municipalities",
style_function=style_function,
).add_to(m)