【发布时间】:2016-04-10 05:31:30
【问题描述】:
在谷歌地图数据层上绘制多边形时,我想处理用户绘制第一个点、第二个和后续点时的事件,以便 UI 可以提供不同的用户指导,例如:
- 没有绘制点:“点击绘制第一个点”
- 绘制的第一个点:“点击绘制下一个点”
- 绘制的第二个点:“单击添加另一个点或单击第一个点结束”
当使用数据库在数据层上绘制结束点时,会出现“addfeature”事件。 当使用绘图库绘制最终点时,会有不同的事件,例如多边形完成。
要查看是否针对第一个、第二个和后续点发出任何事件,我使用 google 示例代码来显示所有事件并对其进行修改以处理数据层上的绘图事件。新事件是:
'addfeature': 'data layer event',
'click': 'data layer event',
'dblclick': 'data layer event',
'mousedown': 'data layer event',
'mouseout': 'data layer event',
'mouseover': 'data layer event',
'mouseup': 'data layer event',
'removefeature': 'data layer event',
'removeproperty': 'data layer event',
'rightclick': 'data layer event',
'setgeometry': 'data layer event',
'setproperty': 'data layer event',
'circlecomplete': 'This event is fired when the user has finished drawing a circle',
'markercomplete': 'This event is fired when the user has finished drawig a marker',
'overlaycomplete': 'This event is fired when the user has finished drawing an overlay of any type',
'polygoncomplete': 'This event is fired when the user has finished drawing a polygon',
'polylinecomplete': 'This event is fired when the user has finished drawing a polyline',
'rectanglecomplete': 'This event is fired when the user has finished drawing a rectangle'
}
http://jsfiddle.net/bunjil/gfp9qntx/9/
事件监听器也得到了增强,可以监听数据层事件——不仅仅是地图事件。
查看触发的事件,并检查文档显示在绘制新多边形时没有添加点的事件,只是数据层上的 mouseup 事件。
虽然可以计算 mouseup 事件,但这可能不是一个可靠的解决方案。
我可以看到在添加或移动顶点时多边形和多段线上有一些事件,但这些事件似乎只在创建多边形后才存在。
任何人都可以确认这种理解是否正确,或者是否有事件我遗漏了什么。
有一个相关问题似乎确认数据层或地图上没有事件,但您可以在画布上监听鼠标事件。 How can I listen for the start of a user drawing a polygon in Google Maps v3?
【问题讨论】:
-
不幸的是,我认为你是对的。如果这样的事件存在,那确实会非常有用。这里有一个开放的功能请求:code.google.com/p/gmaps-api-issues/issues/detail?id=3805 我建议您订阅它,也可以添加评论,解释您需要什么。它是在 2011 年提出的……2015 年 5 月 Google 团队的最新更新。你永远不知道 ;-)
-
感谢您的链接。我发表了评论并投了赞成票。手指交叉。
标签: google-maps events google-maps-api-3