You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Bokeh遍历经纬度列表并批量绘制地理地图点位

批量绘制经纬度列表到Bokeh地理地图

没问题,我帮你把单个点位的代码改成批量处理的版本!其实只需要对现有代码做几个小调整,就能轻松遍历所有坐标并绘制在地图上。

完整实现代码

from pyproj import Transformer
from bokeh.plotting import figure, show
from bokeh.tile_providers import get_provider, Vendors

# 你的经纬度坐标列表
values_list = [['54.866451477248', '14.960403166572'], 
               ['54.864632875802', '14.961946867018'], 
               ['54.954669039256', '14.948996004456'], 
               ['55.062464907296', '14.942403568565'], 
               ['54.8500632', '14.8440791'], 
               ['55.4865391', '14.4950162'], 
               ['55.136166', '14.007264'], 
               ['55.333691003583', '14.76279273417'], 
               ['54.931334101644', '14.881326183346']]

# 初始化EPSG4326(WGS84)到EPSG3857(Web Mercator)的转换器
transformer = Transformer.from_crs("epsg:4326", "epsg:3857")

# 批量转换所有坐标:遍历列表,处理每个经纬度对
# 注意:列表中的坐标是字符串,需要先转为浮点数
web_mercator_coords = []
for lat_str, lng_str in values_list:
    lat = float(lat_str)
    lng = float(lng_str)
    x, y = transformer.transform(lat, lng)
    web_mercator_coords.append((x, y))

# 将转换后的坐标拆分为x和y两个列表
x_coords, y_coords = zip(*web_mercator_coords)

# 设置地图画布和瓦片层
tile_provider = get_provider(Vendors.STAMEN_TONER_BACKGROUND)
m = figure(plot_width=800, plot_height=400, 
           x_range=(1500000, 2000000),  # 调整范围适配所有点位
           y_range=(6000000, 6600000), 
           x_axis_type='mercator', y_axis_type='mercator')
m.add_tile(tile_provider)

# 一次性绘制所有点位
m.circle(x=x_coords, y=y_coords, size=10, color='red')

show(m)

关键调整说明

  • 批量坐标转换:原来的代码只处理了第一个点,现在我们遍历values_list中的每一组坐标,先把字符串格式的经纬度转为浮点数(这一步很重要,不然transform会报错),再统一转换为Web Mercator坐标。
  • 优化地图范围:我调整了x_range和y_range的数值,确保所有点位都能显示在画布内,你可以根据实际需求再微调这个范围。
  • 批量绘制:Bokeh的circle方法支持直接传入列表作为x/y参数,不用循环逐个添加点,既简洁又高效。

更简洁的坐标转换方式

如果你喜欢更紧凑的代码,可以用列表推导式代替循环,一行完成所有坐标转换:

# 用列表推导式批量转换坐标
x_coords, y_coords = zip(*[transformer.transform(float(lat), float(lng)) for lat, lng in values_list])

这样整个代码会更简洁,功能完全一致。

内容的提问来源于stack exchange,提问作者hello543

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 09:47:34