python 写一个GIS界面,可以加载显示本地shp数据
时间: 2024-05-01 08:16:25 浏览: 129
以下是一个简单的Python GIS界面代码,可以加载和显示本地shp数据:
```python
from tkinter import *
import shapefile
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
class GIS_GUI:
def __init__(self, master):
self.master = master
master.title("Python GIS")
# 创建加载按钮
self.load_button = Button(master, text="Load", command=self.load_shp)
self.load_button.pack()
# 创建绘图区域
self.figure = plt.figure(figsize=(6, 6))
self.canvas = FigureCanvasTkAgg(self.figure, master=self.master)
self.canvas.get_tk_widget().pack()
def load_shp(self):
# 打开文件选择对话框,选择本地shp文件
file_path = filedialog.askopenfilename(filetypes=[("Shapefile", "*.shp")])
# 读取shp文件
sf = shapefile.Reader(file_path)
# 获取shp文件中的所有图形
shapes = sf.shapes()
# 绘制shp文件中的所有图形
for shape in shapes:
x, y = zip(*shape.points)
self.figure.gca().plot(x, y)
# 更新绘图
self.canvas.draw()
root = Tk()
gis = GIS_GUI(root)
root.mainloop()
```
说明:
- 导入了`tkinter`、`shapefile`和`matplotlib`模块。
- 创建了一个名为`GIS_GUI`的类,这个类包含了一个`load_shp`方法,用于加载和显示shp数据。
- 在`__init__`方法中创建了一个窗口,并添加了一个名为`Load`的按钮和一个绘图区域。
- 在`load_shp`方法中,打开文件选择对话框,选择本地shp文件,并读取其中的图形数据。
- 使用matplotlib绘制shp文件中的所有图形,并更新绘图区域。
注意:在运行代码前,需要先安装`shapefile`和`matplotlib`模块。
阅读全文