瓦片图层
folium汇总地图的三个步骤: folium.map()生成一个地图地图, folium.Marker().add_to() 在地图中添加标记 , 保存地图文件以html格式可以打开
添加对象的两种方式: 下级类.add_to(上级类) 上级类.add_child(下级类)
folium.Map() 的初始化参数
location=None, => [35.305761, 113.877089] 维度经度坐标值 ,以此为中心展示地图
width height left top => 地图显示的位置, 相对值 ‘20%’ or 绝对值 800
zoom_start => 地图缩放级别 zoom_start=4 国家级别, 10 城市级别
tiles => 指定地图瓦片的样式,可以是内置样式如 ‘OpenStreetMap’、’Stamen Terrain’,也可以是 URL
设置使用高德地图 : tiles=’http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}’, attr=”© <a href=http://ditu.amap.com/>高德地图</a>”
主题自定义url的供应商 : http://leaflet-extras.github.io/leaflet-providers/preview/ Be sure to check their terms and conditions and to provide attribution with the attr keyword.
attr => 地图底部属性描述
control_scale=True => 是否显示比例尺 默认False
min_zoom 和 max_zoom => 指定地图的最小和最大缩放级别。 默认0-18
position=’relative’ => 定位方式 , relative 相对定位, fixed 固定位置。 使用 ‘relative’ 可以使地图元素与页面的其他元素一起滚动,这在需要地图与其他页面内容交互时可能更为合适。如果希望地图保持在固定位置,可以使用 ‘fixed’
max_bounds=False => max_bounds 参数用于设置地图是否限制在最大边界内。当 max_bounds 设为 True 时,地图将受到最大边界的限制,不会超出指定的经纬度范围。当 max_bounds 设为 False 时,地图将不受限制,可以随意拖动到任意位置。
max_bounds=False 表示地图不受最大边界的限制,用户可以在地图上自由拖动到任意位置。如果需要限制地图在一定的经纬度范围内,可以将 max_bounds 设为 True 并使用 min_lon, min_lat, max_lon, max_lat 参数来指定最大边界。
prefer_canvas=False => 是否优先使用 Canvas 渲染
no_touch=False => 表示不禁用触摸事件,用户可以通过触摸进行拖动和缩放地图。如果需要禁用触摸事件,可以将 no_touch 设置为 True
disable_3d => 参数用于控制是否禁用地图的 3D 加速。当 disable_3d 设置为 True 时,禁用地图的 3D 加速,这可能会提高在某些设备上的兼容性。
png_enabled=False => png_enabled 参数用于指定是否启用 PNG 渲染。PNG 渲染是一种将地图渲染为 PNG 格式图像的方式。 PNG 渲染通常用于将地图以图像形式保存,而不是以交互式地图的形式展示。
zoom_control => 参数用于控制是否显示地图上的缩放控制器。缩放控制器通常是地图上的 “+” 和 “-” 按钮,允许用户手动调整地图的缩放级别。
folium.Marker() 是用于在地图上添加标记的类。可以在地图上指定的位置添加标记,并可以设置标记的弹出窗口(popup)、图标(icon)等属性。 初始化参数:
location=[lat,lon], => [35.305761, 113.877089]
popup => 线上标记文本
tooltip => 鼠标停留时弹窗文本
icon => folium.Icon() 对象, 线上标记的样式 icon=folium.Icon(color=’red’, icon=’info-sign’)
draggable => 设置true可以在地图中拖到标记
folium.Circle() .circle_marker()
folium.Circle(radius=200,location=[39.93, 116.40],popup=’The Waterfront’,color=’#00FFFF’, fill=False, ).add_to(bj_map)
folium.Icon() 在Marker类中标记的显示图标
color : str, default ‘blue’ 可选范围[‘red’, ‘blue’, ‘green’, ‘purple’, ‘orange’, ‘darkred’,’lightred’, ‘beige’, ‘darkblue’, ‘darkgreen’, ‘cadetblue’,’darkpurple’, ‘white’, ‘pink’, ‘lightblue’, ‘lightgreen’,’gray’, ‘black’, ‘lightgray’]
icon : Font-Awesome website 的图标,默认 info-sign 信息, ‘info-sign’: 信息标志 ‘star’: 星形 ‘home’: 房子 ‘flag’: 旗帜
angle=90 图标顺时针旋转90°
icon_color
prefix 参数用于指定图标的前缀,通常用于指定图标库的来源。默认情况下,prefix 的值为 ‘glyphicon’,表示使用 Bootstrap Glyphicons 图标库。然而,如果你想使用 Font Awesome 图标库,你需要将 prefix 设置为 ‘fa’
高级应用
folium.TileLayer() 多图层
folium.TileLayer 是 Folium 中用于添加瓦片图层的类。瓦片图层是地图的底图,决定了地图的外观和内容。使用 folium.TileLayer 可以将不同的瓦片图层叠加到地图上,从而改变地图的底图。
参数name=” 用来定义在地图中显示该图层的名称,通过folium.LayerControl()展示选择图层
folium.TileLayer(
tiles=’http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}’,attr=”© <a href=http://ditu.amap.com/>高德地图</a>”,
min_zoom=0,
max_zoom=19,
control=True,
show=True,
overlay=False,
name=’baseLayer’
).add_to(national_map)
folium.LayerControl().add_to(mymap) 当添加多个瓦片图层,可以使用该函数选择展示图层
folium.FeatureGroup(name=’My Feature Group’) 自定义图层
FeatureGroup 是一种组织地图上图层的容器。它允许你将多个标记、形状或其他地图元素组织到一个组中,以便更方便地进行管理和控制。FeatureGroup 可以通过添加到地图上,实现对组内元素的整体控制。
组织标记: 将多个标记组织到一个 FeatureGroup 中,可以方便地对这些标记进行整体控制,例如添加/删除、显示/隐藏等。
folium.LayerControl() 图层控制器
交互功能
dynamic_tagging = folium.Map()
dynamic_tagging.add_child(folium.ClickForMarker(popup=’Waypoint’)) .add_child(folium.ClickForMarker(popup=’Waypoint’)) 的作用是向地图添加一个交互式的功能,允许用户点击地图的任意位置,然后在点击的位置上添加一个标记(Marker)。
添加图层控制器
mymap.add_child(folium.LayerControl())
标记聚集
marker_cluster = plugins.MarkerCluster().add_to(park_map) 是使用 Folium 中的 Marker Cluster 插件来创建标记簇(Marker Cluster)并将其添加到地图上的代码。