AMapMouseTool的close方法没有触发draw事件怎么触发并拿到坐标
可以使用AMap.MouseTool的getLngLat方法获取鼠标点击的坐标,然后手动触发draw事件并将坐标传递给事件处理函数。
示例代码:
var map = new AMap.Map('container', {
zoom: 10,
center: [116.39, 39.9]
});
var mouseTool = new AMap.MouseTool(map);
mouseTool.on('draw', function(e) {
console.log('draw:', e.obj.getPath());
});
// 手动触发draw事件
function triggerDrawEvent(lnglat) {
var event = {
obj: new AMap.Polygon({
path: [lnglat],
strokeColor: '#FF33FF',
strokeWeight: 6,
strokeOpacity: 0.2,
fillColor: '#1791fc',
fillOpacity: 0.4
})
};
mouseTool.emit('draw', event);
}
// 点击地图时获取坐标并触发draw事件
map.on('click', function(e) {
var lnglat = e.lnglat;
console.log('click:', lnglat);
triggerDrawEvent(lnglat);
});
在上述代码中,我们在地图上点击时获取坐标并调用triggerDrawEvent函数手动触发draw事件,并将坐标传递给事件处理函数。事件处理函数中可以获取绘制的图形对象,通过getPath方法获取所有点的坐标。
原文地址: https://www.cveoy.top/t/topic/baTZ 著作权归作者所有。请勿转载和采集!