我正在尝试在框架内绘制地图视图,并绘制地方当局的多边形(供用户单击以选择)。
运行代码时出现以下错误,尽管小部件正在运行:
AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'
我使用的代码如下:
import tkinter as tk
import tkintermapview
import json
import itertools
# create tkinter window
root_tk = tk.Tk()
root_tk.geometry(f"{1000}x{700}")
root_tk.title("map_view_polygon_example.py")
# create map widget
map_widget = tkintermapview.TkinterMapView(root_tk, width=800, height=600, corner_radius=0)
map_widget.pack(fill="both", expand=True)
map_widget.set_position(53.46,-2.250) # UK
map_widget.set_zoom(8)
# polygon click
def UpdateMap(event=None):
tk.messagebox.showinfo("A local authority")
# get polygon shape
d = open('LA_shape.json')
shape = json.load(d)
shape = shape['features']
# for each local authority
for x in range(len(shape)):
coord = shape[x]
coord = coord['geometry']
coord = coord['coordinates']
coord = list(itertools.chain(*coord))
coord = list(itertools.chain(*coord))
# swap lat / long to long / lat
for x in range(len(coord)):
coord[x][0], coord[x][-1] = coord[x][-1], coord[x][0]
map_widget.set_polygon(coord,
# fill_color=None,
# outline_color="red",
# border_width=12,
command=UpdateMap,
name="local_authority_polygon")
root_tk.mainloop()