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

基于计数设置半径的地图气泡不显示问题排查

地图气泡不显示问题排查与解决

问题描述

我编写了一个在地图上生成气泡的简单脚本,希望根据计数(强度)设置气泡半径。已获取包含经纬度和计数值的数据,也生成了地图,但地图上未显示气泡,求排查问题。

数据处理代码

import pandas as pd
# 加载数据集到pandas dataframe
df = pd.read_csv("autostrada_a_6.csv", delimiter=';', error_bad_lines=False)
# 输出数据行数
print('数据行数: {:,}\n'.format(df.shape[0]))
df.head()
# 按经纬度分组统计计数并排序
locations = df.groupby(by=['latitudine','longitudine'])\
       .count()['created_at']\
       .sort_values(ascending=False)
locations

数据预览截图

包含经纬度和计数的截图

地图生成代码

# 创建空地图
    m = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=2)
    def get_radius(freq):
        if freq < 5:
          return 0.1
        elif freq < 15:
          return 0.5
        elif freq < 257:
          return 1.0
  for i,x in locations.iteritems():
   folium.CircleMarker(
      location=[i[0], i[1]],
      radius=get_radius(x),
      color='crimson',
      fill=True,
      fill_color='crimson'
   ).add_to(m)

地图结果截图

地图结果截图


问题原因与解决方案

气泡不显示是多个问题共同导致的,以下是逐一排查和修正的要点:

1. 地图初始定位与缩放错误

你的地图初始位置设为[20,0](大西洋中部),但数据点实际在意大利附近(纬度约45°、经度约10°),初始位置离数据点过远,且zoom_start=2的缩放级别极低,导致气泡完全在视野之外。

2. 代码缩进错误

Python依赖缩进识别代码块,你提供的地图生成代码中,for循环的缩进不符合规范,会导致代码无法正常执行。

3. 气泡半径过小

设置的最小半径仅为0.1,这么小的尺寸在地图上几乎无法识别,尤其是低缩放级别下。

4. 缺少地图保存/显示步骤

代码末尾没有添加保存地图为HTML文件或在交互环境中显示地图的逻辑,导致生成的地图无法被查看。


修正后的完整代码

import pandas as pd
import folium

# 加载数据集
df = pd.read_csv("autostrada_a_6.csv", delimiter=';', error_bad_lines=False)
print(f'数据行数: {df.shape[0]:,}\n')

# 按经纬度分组统计计数并排序
locations = df.groupby(by=['latitudine','longitudine'])\
       .count()['created_at']\
       .sort_values(ascending=False)

# 初始化地图,定位到数据所在的意大利区域
m = folium.Map(location=[45, 10], tiles="OpenStreetMap", zoom_start=8)

def get_radius(freq):
    if freq < 5:
        return 3  # 增大最小半径,确保气泡可见
    elif freq < 15:
        return 7
    elif freq < 257:
        return 12

# 正确缩进的循环,遍历所有经纬度点
for coords, count in locations.items():
    folium.CircleMarker(
        location=[coords[0], coords[1]],
        radius=get_radius(count),
        color='crimson',
        fill=True,
        fill_color='crimson'
    ).add_to(m)

# 保存地图为HTML文件
m.save('autostrada_map.html')
# 若在Jupyter Notebook环境中运行,可添加以下代码直接显示地图
# display(m)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:39:09