LeafMap核心功能详解:打造交互式地理可视化应用

LeafMap核心功能详解:打造交互式地理可视化应用

leafmap A Python package for interactive mapping and geospatial analysis with minimal coding in a Jupyter environment leafmap 项目地址: https://gitcode.com/gh_mirrors/le/leafmap

什么是LeafMap

LeafMap是一个基于Python的交互式地图可视化库,它整合了ipyleaflet和folium等流行地图库的功能,为地理空间数据分析和可视化提供了简洁高效的解决方案。LeafMap特别适合用于Jupyter Notebook环境,能够快速创建包含多种数据源的交互式地图。

环境准备与安装

要使用LeafMap,首先需要安装必要的依赖库:

pip install leafmap geopandas pycrs osmnx

安装完成后,在Python环境中导入leafmap即可开始使用:

import leafmap

基础地图创建

创建简单地图

最基本的交互式地图可以通过一行代码创建:

m = leafmap.Map(center=(40, -100), zoom=4)
m
  • center参数设置地图初始中心点坐标
  • zoom参数设置初始缩放级别

自定义地图尺寸

可以灵活调整地图的显示尺寸:

m = leafmap.Map(height="400px", width="800px")

控制地图组件

LeafMap允许自定义地图上的各种控制组件:

m = leafmap.Map(
    draw_control=False,        # 禁用绘图工具
    measure_control=False,     # 禁用测量工具
    fullscreen_control=False,  # 禁用全屏按钮
    attribution_control=True   # 启用属性信息
)

地图数据源管理

添加底图

LeafMap内置了多种底图供选择:

m = leafmap.Map()
m.add_basemap("OpenTopoMap")  # 添加OpenTopoMap底图

添加XYZ瓦片图层

可以添加自定义的XYZ瓦片服务:

m.add_tile_layer(
    url="https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}",
    name="Google Satellite",
    attribution="Google"
)

添加WMS服务

支持添加WMS(Web Map Service)图层:

naip_url = "https://www.mrlc.gov/geoserver/mrlc_display/NLCD_2019_Land_Cover_L48/wms?"
m.add_wms_layer(
    url=naip_url,
    layers="NLCD_2019_Land_Cover_L48",
    name="NLCD 2019",
    format="image/png"
)

添加COG图层

支持云优化GeoTIFF(COG)格式:

url = "https://example.com/data/Libya-2023-07-01.tif"
m.add_cog_layer(url, name="Fire (pre-event)")

添加STAC图层

支持空间时序资产目录(STAC)数据:

url = "https://example.com/data/S5_11055_6057_20070622.json"
m.add_stac_layer(url, bands=["B3", "B2", "B1"], name="False color")

矢量数据可视化

添加GeoJSON数据

in_geojson = "https://example.com/data/cable_geo.geojson"
m.add_geojson(in_geojson, layer_name="Cable lines")

可以自定义样式:

style = {
    "stroke": True,
    "color": "#0000ff",
    "weight": 2,
    "opacity": 1,
    "fill": True,
    "fillColor": "#0000ff",
    "fillOpacity": 0.1
}
hover_style = {"fillOpacity": 0.7}
m.add_geojson(url, style=style, hover_style=hover_style)

添加Shapefile

in_shp = "https://example.com/data/countries.zip"
m.add_shp(in_shp, layer_name="Countries")

添加KML文件

in_kml = "https://example.com/data/us_states.kml"
m.add_kml(in_kml, layer_name="US States KML")

添加GeoDataFrame

import geopandas as gpd
gdf = gpd.read_file("https://example.com/data/cable_geo.geojson")
m.add_gdf(gdf, layer_name="Cable lines")

高级可视化功能

创建热力图

in_csv = "https://example.com/data/world_cities.csv"
m.add_heatmap(
    in_csv,
    latitude="latitude",
    longitude="longitude",
    value="pop_max",
    name="Heat map",
    radius=20
)

添加图例

m.add_legend(title="NLCD Land Cover Type", builtin_legend="NLCD")

添加颜色条

colors = ["006633", "E5FFCC", "662A00", "D8D8D8", "F5F5F5"]
vmin = 0
vmax = 4000
m.add_colorbar(colors=colors, vmin=vmin, vmax=vmax)

添加标题

m.add_title("World Population Heat Map", font_size="20px", align="center")

地图导出与分享

导出为HTML

m.to_html("mymap.html")

专业数据源集成

添加Planet卫星影像

os.environ["PLANET_API_KEY"] = "your-api-key"
m.add_planet_by_month(year=2020, month=8)
m.add_planet_by_quarter(year=2019, quarter=2)

结语

LeafMap为地理空间数据可视化提供了强大而灵活的工具集,从简单的底图展示到复杂的热力图分析,都能通过简洁的API实现。无论是科研分析、商业决策还是教育演示,LeafMap都能帮助用户快速创建专业级的交互式地图应用。通过本文介绍的核心功能,读者可以快速上手并探索LeafMap的更多可能性。

leafmap A Python package for interactive mapping and geospatial analysis with minimal coding in a Jupyter environment leafmap 项目地址: https://gitcode.com/gh_mirrors/le/leafmap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

申华昶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值