Google maps 谷歌地图API数据层功能。事件未触发
我有一个数据层:Google maps 谷歌地图API数据层功能。事件未触发,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我有一个数据层: mylayer.loadGeoJson(myGeoJsonString); mylayer.setStyle(function(feature){ var col = feature.getProperty('strokeColor'); return { strokeColor: col, strokeWeight: 3, fillOpacity: 0, clickable: true, dra
mylayer.loadGeoJson(myGeoJsonString);
mylayer.setStyle(function(feature){
var col = feature.getProperty('strokeColor');
return { strokeColor: col,
strokeWeight: 3,
fillOpacity: 0,
clickable: true,
draggable: true
}
});
每个功能都可以通过鼠标拖动操作在地图上移动,但如果我尝试向dragend事件添加侦听器:
mylayer.addListener('dragend', function(event) {
if (confirm("Do you really want to move it?")) {
console.log ("Moved, need to update spatial DB...");
}
});
但事件不会触发(也使用Google Chrome调试控制台断点进行检查)
我错在哪里?屏幕上没有
dragend
事件
有关可用事件,请参见此答案:或
可用事件:
- 附加功能
- 点击
- 穆斯敦
- 灭鼠器
- 鼠标盖
- 鼠标
- 移除特征
- 移除属性
- 右键单击设置几何体
- setproperty
当您调用数据层API时,您可以在调用完成时接收调用的状态,也可以侦听该调用最终对侦听器所做的任何更改 您会注意到,对数据层API的调用有时会返回“Pendingreult”。一旦创建了“Pendingreult”,操作就会在后台排队,因此Pendingreult允许您同步或异步地等待结果状态 如果代码在主UI线程上运行,请不要对数据层RAPI进行阻塞调用。通过向Pendingreult添加回调方法,可以异步运行调用 如果您的代码在后台服务中的单独处理程序线程上运行,那么阻塞调用就可以了。在这种情况下,可以在Pendingreult上调用“wait()”
有关事件处理的更多信息,请点击此链接:谢谢,您知道使用mousedown和mouseup事件检测拖动结束的良好做法吗?mousedown和mouseup事件具有作为事件对象一部分的功能。因此,您可以在mousedown启动时将对象的ID存储在一侧。当mouseup启动时,您可以n查看ID是否匹配以及几何体是否不同。如果几何体不同,您知道这是一个拖动事件,而不仅仅是单击。您还可以检查几何体的最小更改量,以避免意外的轻微拖动和过度单击。