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

使用Geoplotlib绘制点地图时出现GL_POINT_SMOOTH未定义错误如何解决?

解决geoplotlib绘制点地图时GL_POINT_SMOOTH未定义的错误

错误详情

运行geoplotlib绘制点地图时出现以下报错:

Traceback (most recent call last):
  File "/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/__init__.py", line 32, in _runapp
    app.start()
  File "/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/core.py", line 367, in start
    l.invalidate(self.proj)
  File "/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/layers.py", line 148, in invalidate
    self.painter.points(x, y, 2*self.point_size, False)
  File "/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/core.py", line 517, in points
    glDisable(GL_POINT_SMOOTH)
NameError: name 'GL_POINT_SMOOTH' is not defined

测试代码

import geoplotlib
from geoplotlib.utils import read_csv

data = read_csv("merged.csv") 

geoplotlib.dot(data)
geoplotlib.show()

测试数据(merged.csv)

lat,lon,val
24.0,54.0,1.67
33.0,65.0,3.9
17.05,-61.8,2.0
41.0,20.0,1.7
40.0,45.0,1.58
12.25,-68.75,1.82
-12.5,18.5,5.34
-34.0,-64.0,2.22

解决方法

方法1:手动修复geoplotlib源码

这个错误是因为core.py中缺少GL_POINT_SMOOTH常量的导入,直接修改源码即可:

  1. 找到你的Python环境中geoplotlib的安装路径(示例路径:/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/)
  2. 打开core.py文件,在文件开头的OpenGL导入区域,添加一行:
    from OpenGL.GL import GL_POINT_SMOOTH
    
  3. 保存文件后重新运行代码即可。

方法2:安装维护版本的geoplotlib

原版geoplotlib已长期未更新,兼容性问题较多,可以安装社区维护的分支版本:

pip uninstall -y geoplotlib
pip install git+https://github.com/andrea-cuttone/geoplotlib.git

方法3:替换为其他地图可视化库

如果不想折腾geoplotlib,推荐使用更活跃的替代库,比如用folium实现同样的点地图:

import folium
import pandas as pd

# 读取数据
data = pd.read_csv("merged.csv")

# 初始化地图,以数据中心点为初始视角
map_center = [data['lat'].mean(), data['lon'].mean()]
m = folium.Map(location=map_center, zoom_start=2)

# 添加每个点的标记
for _, row in data.iterrows():
    folium.CircleMarker(
        location=[row['lat'], row['lon']],
        radius=6,
        popup=f"数值: {row['val']}",
        fill_color='#3186cc',
        color='#000000',
        fill_opacity=0.7
    ).add_to(m)

# 保存为HTML文件,直接打开即可查看
m.save("point_map.html")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:45:32