如何解决ipyleaflet draw_control无法处理“全部清除”按钮
我正在使用draw_control
中的ipyleaflet
函数在地图上绘制多边形。我正在收集使用feature_collection
变量绘制的内容,效果很好。但是,当我按地图上的clear all
按钮上的bin
时,feature_collection
变量不会被清空-如何将地图上按clear all
的按钮转换为清除我的{ {1}}变量?目前,它复制了我之前绘制的内容,因此我具有以下工作流程:
- 绘制两个多边形
-
feature_collection
包含有关两个多角形的信息 - 按下地图上的“全部清除
feature_collection
bin”按钮。 - 在地图上绘制两个新的多边形
-
on
现在包含6(!)项,将1.操作重复了两次!
这里是要复制的代码!基本上,我不理解如何通过feature_collection
按钮来收集clear_all
动作来清除我的bin
变量。
feature_control
解决方法
在 handle_draw
方法中,除了 geo_json
功能之外,还有一个 action
参数可以帮助您处理 DrawingControl
中发生的事情。
清除后,action
将为 deleted
。
因此要调整您的代码,您可以执行以下操作:
#Handling items drawn on map:
def handle_draw(self,action,geo_json):
"""Do something with the GeoJSON when it's drawn on the map"""
if action in ['created','edited']:
feature_collection['features'].append(geo_json)
elif action == 'deleted':
feature_collection['features'].remove(geo_json)
return
请注意,由于“已编辑”未提供有关原始形状的任何信息,因此您无法知道要修改哪个形状
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。