我创建了一个应用程序,使用它可以在地图上绘制形状并且它们是可编辑的并且可以选择。
这是通过向绘图管理器添加“overlaycomplete”侦听器并编写用于设置所选形状或清除选择或删除形状的函数来实现的:
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
drawingManager.setDrawingMode(null);
var shape = e.overlay;
shape.type = e.type;
google.maps.event.addListener(shape, 'click', function() {
select(shape);
});
然后可以将所有形状的详细信息保存在数据库中。我现在需要重新创建具有相同形状的地图,这些形状应该可以再次编辑。从数据库加载详细信息后,我重新创建了形状,但似乎无法在它们上设置侦听器以使用与以前使用的相同的功能。通过指定它们来简单地重绘形状:
shape = new google.maps.Polygon({
map: map,
paths: paths,
zIndex: 90,
strokeWeight: 0,
fillColor: color,
fillOpacity: 0.65,
editable: true
});
以这种方式绘制形状后,它们是可编辑的,但我不能一次选择一个形状,例如删除它。IE。无法使用先前编写的功能来操作形状。
有没有办法设置监听器?