folium进阶内容介绍

文章目录

    • 一、简言
    • 二、处理GeoJSON和TopoJSON数据
    • 三、Choropleth分级着色图

一、简言

​ 上一篇中我们学习了folium的基础内容,从创建folium地图开始,通过主要参数修饰地图,尝试绘制Marker来标记特定地点等,实际上folium在地理信息可视化过程中重点在于绘制图像的高度可定制化。

二、处理GeoJSON和TopoJSON数据

  1. GeoJSON数据

    GeoJSON是语法规则符合JSON文件的,专用于表示地理信息的一种JSON文件,其在JSON语法的基础上,内部又有着一套固定的语法规则。在folium中我们使用folium.GeoJson()方法来为已有的Map对象添加GeoJson图层,其常用参数如下:

    • data:传入你想要在地图上绘制的GeoJson数据。
    • highlight_function:一个自编函数,用于映射自定义的地图上施加的鼠标事件形式,默认为None。
    • style_function:一个自编函数,将自定义的对GeoJSON中特征的风格设置,映射到GeoJSON图层上,默认为None。
    • smooth_factorfloat型,用于控制每一次缩放时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

folium进阶内容介绍_第1张图片

示例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] ]
       ]
  

你可能感兴趣的:(python)