上一篇中我们学习了folium的基础内容,从创建folium地图开始,通过主要参数修饰地图,尝试绘制Marker来标记特定地点等,实际上folium在地理信息可视化过程中重点在于绘制图像的高度可定制化。
GeoJSON数据
GeoJSON
是语法规则符合JSON文件的,专用于表示地理信息的一种JSON文件,其在JSON语法的基础上,内部又有着一套固定的语法规则。在folium中我们使用folium.GeoJson()方法来为已有的Map对象添加GeoJson图层,其常用参数如下:
data
:传入你想要在地图上绘制的GeoJson数据。highlight_function
:一个自编函数,用于映射自定义的地图上施加的鼠标事件形式,默认为None。style_function
:一个自编函数,将自定义的对GeoJSON中特征的风格设置,映射到GeoJSON图层上,默认为None。smooth_factor
:float型,用于控制每一次缩放时GeoJSON图层元素的光滑程度,该数值越大,意味着元素越光滑;该数值越小,意味着,元素的表现越接近真实坐标。示例1:通过GeoJSON绘制直线
m = folium.Map(location=[38.85,115.48],
zoom_start=12,control_scale=True)
gj = folium.GeoJson(data={
"type":"LineString",
"coordinates":[[115.46, 38.80], [115.49, 38.88]]})
gj.add_to(m)
m
示例2:通过GeoJSON格式数据绘制交汇矩形
m = folium.Map(location=[38.85,115.48],
zoom_start=12,control_scale=True)
gj = folium.GeoJson(data={
"type": "Polygon",
"coordinates": [
[ [115.46, 38.80], [115.56, 38.80], [115.56, 38.90], [115.46, 38.90], [115.46, 38.80] ],
[ [115.48, 38.82], [115.54, 38.82], [115.54, 38.88], [115.48, 38.88], [115.48, 38.82] ]
]