Javascript 同时拖动2个谷歌地图标记
我在网上找到了一些文章和一些关于stack overflow的帖子,它们解释了如何选择多个标记,但是我没有找到任何可以同时拖动两个标记的文章。我已经能够让它以一种方式工作,允许1个标记在它的兄弟上触发一个事件并拖动相关的标记,但不知何故它停止了我单击的标记上的拖动事件 我不能使用复杂的多边形,因为在复杂的标记svg上不可能只更改一条路径的颜色。我必须创建两个SVG,一个用于中心填充,另一个用于外部填充,然后我必须更改外部填充的颜色 这就是工作原理 首先,我创建标记,然后将它们放置在相同的位置 然后我将这些标记传递给这个函数Javascript 同时拖动2个谷歌地图标记,javascript,google-maps-api-3,vue.js,lodash,Javascript,Google Maps Api 3,Vue.js,Lodash,我在网上找到了一些文章和一些关于stack overflow的帖子,它们解释了如何选择多个标记,但是我没有找到任何可以同时拖动两个标记的文章。我已经能够让它以一种方式工作,允许1个标记在它的兄弟上触发一个事件并拖动相关的标记,但不知何故它停止了我单击的标记上的拖动事件 我不能使用复杂的多边形,因为在复杂的标记svg上不可能只更改一条路径的颜色。我必须创建两个SVG,一个用于中心填充,另一个用于外部填充,然后我必须更改外部填充的颜色 这就是工作原理 首先,我创建标记,然后将它们放置在相同的位置 然
addMultiMarkerListener:function(id, outer, inner){
var arr = ['mousedown', 'mouseup', 'click','mouseover','mouseout', 'dragend','drag','dragstar'];
var evtArr = {}
_.each(arr, function(evt){
evtArr[evt] = {};
evtArr[evt][id] = false;
outer.addListener(evt, function(){
if(!evtArr[evt][id]){
evtArr[evt][id] = true;
google.maps.event.trigger(inner, evt);
evtArr[evt][id] = false
}
})
inner.addListener(evt, function(){
if(!evtArr[evt][id]){
evtArr[evt][id] = true;
google.maps.event.trigger(outer, evt);
evtArr[evt][id] = false
}
})
})
},
我希望它能够触发两个标记的mousedown事件,这样当我向下单击时,我可以同时拖动这两个标记。现在的工作方式是,在兄弟标记上触发mousedown事件时停止第一个mousedown事件
我也在想,我可以触发一个单独的事件,不会干扰第一个事件。这可能需要一点深思熟虑,但我想我能做到。我只是希望其他人能够对此提供一些见解。我解决了这个问题。我决定在拖动事件中获取第一个标记的位置,然后将第二个标记的位置设置为第一个标记的位置,而不是触发两个mousedown事件。像这样
addDragListener: function(marker, id, centerMarker) {
var self = this;
var fill = centerMarker;
marker.addListener('drag', function(){
var position = marker.getPosition();
fill.setPosition(position);
})
}