folium函数总结

本文介绍了如何使用folium在Jupyter Notebook中创建地图,包括设置经纬度、缩放级别,添加标记、热力图和小地图等基本操作。同时讲解了MarkerCluster的功能和不同地图样式的选择。
摘要由CSDN通过智能技术生成

folium

folium的运行依赖于jupyter notebook , 或者保存html之后打开

创建一个简单的地图
import folium
m = folium.Map(location=[32.03,118.85],zoom_start=16)
m

HhxEbq.png

参数描述
location经纬度 , 注意是 [纬度,经度]
zoom_start缩放等级 , 数字越大图片上显示的越详细
control_scalebool , 可选是否显示缩放比例
width地图的宽度 , 默认’100%’ , 格式为 ‘xx%’
height地图的高度 , 默认’100%’ , 格式为 ‘xx%’
tiles地图风格 :
‘OpenStreetMap’ : 默认
‘Stamen Terrain’ : 带有地形与海拔
’Stamen Toner’ : 纯黑白
’Stamen Watercolor’ : 类似卡通涂鸦风格
’CartoDB positron’ : 浅白色简约 , 全英文
’CartoDB dark_matter’ : 黑色简约
保存html打开地图

这样地图会显得更加的大 , 截图更方便

import folium
import webbrowser as wb

m = folium.Map(location=[32.03,118.85],zoom_start=16)
m.save("m.html")
wb.open("m.html")
点击显示经纬度
m.add_child(folium.LatLngPopup())

HhxYa6.png

Latitude : 纬度

Longitude : 经度

对地点进行标记

使用之前最好翻墙

folium.Marker([32.0246,118.8518],
              popup='<i>My dormitory</i>',
              icon=folium.Icon(icon='cloud')
             ).add_to(m)

HhxrqI.png

参数描述
popup点击这个标记之后显示的文字
color这个标记的颜色
icon_color这个标记的icon的颜色
icon这个标记的符号 , 符号见附录1

在添加了多个标记时会显示数字 , 可以用来描述数量和密度 , 在添加标记的时候最好使用 MarkerCluster , MarkerCluster可以对添加的标记进行集群 , 类似于热力图在缩放时会集群 , 使用的时候只是改变了add_to的对象 , 以后都改变成了这个新的变量

MarkerCluster : Provides Beautiful Animated Marker Clustering functionality for maps.

from folium.plugins import MarkerCluster
marker_cluster = MarkerCluster().add_to(m)

folium.Marker(
    location=[32.03,118.85]
).add_to(marker_cluster)

folium.Marker(
    location=[32.04,118.86]
).add_to(marker_cluster)

folium.Marker(
    location=[32.02,118.84]
).add_to(marker_cluster)

HhxzLR.png

点击添加标记
m.add_child(folium.ClickForMarker())

HhzwkV.png

画一个圆
folium.Circle(
    radius=100,
    location=[32.03,118.85],
    color='hotpink',
    fill=True,
    fill_color='blue'
).add_to(m)

Hhz6X9.png

参数描述
radius圆的半径
location圆心的经纬度
color圆的线的颜色
fill是否填充阴影
fill_color填充阴影的颜色
画一个有填充的图形
folium.GeoJson(data={ "type": "Polygon","coordinates": [[[100.0, 0.0],[101.0, 0.0],[102.0,1]]]}).add_to(m)

H4SG4K.png

修改文中列表即可

画一条线
ls = folium.PolyLine(locations=[[32.03,118.85],[32.0246,118.8518]],
                     color='blue').add_to(m)

H4SDEt.png

location 里也可以有多个位置 , 然后他们将会被挨个连起来

画热力图
data = [[32.03,118.85,0.7],[32.13,118.86,0.03],[32.23,118.95,0.6]]
folium.plugins.HeatMap(data).add_to(m)

H4SXr9.png
H4SOKJ.png

  • 通过向HeatMap传入data参数画热力图
  • 形式为 [ [ l a t 1 , l o n g 1 , h e a t 1 ] , [ l a t 2 , l o n g 2 , h e a t 2 ] . . . [ l a t n , l o n g n , h e a t n ] ] [[lat_1,long_1,heat_1],[lat_2,long_2,heat_2]...[lat_n,long_n,heat_n]] [[lat1,long1,heat1],[lat2,long2,heat2]...[latn,longn,heatn]]
  • h e a t heat heat的取值为 [ 0 , 1 ] [0,1] [0,1]
  • 原理为在data的所有点处画一个热度 , 当地图缩放时 , 缩放点的 h e a t heat heat就会相加然后显示
添加小地图

最好先翻墙

minimap = folium.plugins.MiniMap(toggle_display=True,
                  tile_layer='OpenStreetMap',
                  position='topleft',
                  width=100,
                  height=100)
m.add_child(minimap)

H4pfzD.png

参考资料

folium基础内容介绍

folium进阶内容介绍

folium官网

拓展资料

jupyter 示例

geoplot上

geoplot下

地理信息可视化

附录

附录1

HhFqpV.png
HhFXXF.png
HhFLlT.png
HhFO6U.png
HhFvm4.png
HhFHf0.png

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
中如何安装和使用?如何在folium中添加标记和图层? 要在PyCharm中使用 folium,需要先安装folium库。可以通过在PyCharm中的Terminal或Anaconda Prompt中使用以下命令来安装:pip install folium。 使用folium创建地图非常简单,只需调用 folium.Map() 函数即可创建一个地图对象。可以传入一组经纬度坐标以聚焦于该地点。例如,以下代码将以武汉科技大学为中心创建一个地图: import folium position = [30.4415, 114.2628] school_mp = folium.Map(location=position, zoom_start=15) school_mp 要在folium中添加标记,可以使用 folium.Marker() 函数。该函数需要传入一组经纬度坐标以及一个 popup 参数,以显示标记上方的文本。例如,以下代码将在武汉科技大学添加一个标记: import folium position = [30.4415, 114.2628] school_mp = folium.Map(location=position, zoom_start=15) folium.Marker(location=position, popup='武汉科技大学').add_to(school_mp) school_mp 要在folium中添加图层,可以使用 folium.LayerControl() 函数。该函数需要传入一个字典,键为所添加的图层名称,值为所添加的图层对象。例如,以下代码将在武汉科技大学添加两个图层: import folium position = [30.4415, 114.2628] school_mp = folium.Map(location=position, zoom_start=15) folium.Marker(location=position, popup='武汉科技大学').add_to(school_mp) layer1 = folium.FeatureGroup(name='图层1') layer2 = folium.FeatureGroup(name='图层2') layer1.add_child(folium.Marker(location=[30.4430, 114.2635], popup='图层1标记1')) layer1.add_child(folium.Marker(location=[30.4435, 114.2625], popup='图层1标记2')) layer2.add_child(folium.Marker(location=[30.4400, 114.2660], popup='图层2标记1')) layer2.add_child(folium.Marker(location=[30.4395, 114.2635], popup='图层2标记2')) school_mp.add_child(layer1) school_mp.add_child(layer2) school_mp.add_child(folium.LayerControl()) school_mp --相关问题--:
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

d3ac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值