使用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常量的导入,直接修改源码即可:
- 找到你的Python环境中geoplotlib的安装路径(示例路径:
/Users/abc/opt/anaconda3/lib/python3.9/site-packages/geoplotlib/) - 打开
core.py文件,在文件开头的OpenGL导入区域,添加一行:from OpenGL.GL import GL_POINT_SMOOTH - 保存文件后重新运行代码即可。
方法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
相关产品推荐
相关产品推荐

