在做openlayers开发的时候很容易遇到需要拖动客户端图层的需求。这里我分享一下我的实现过程。
代码如下:
<script>
import Translate from 'ol/interaction/Translate';//首先引入Translate
export default {
data(){
layer:null//这个是要被拖动图层,这里我就不实例化了。
},
methods:{
translate(){
let iTranslate = new Translate({
hitTolerance: 5,
layers: [layer]
});
this.map.addInteraction(iTranslate);//这样是动态给map插入这个属性,这个研究了好久,非常实用。
//如果不是动态插入的直接在map里面添加: map = new ol.Map({interactions: ol.interaction.defaults().extend([iTranslate])}
iTranslate.on('translatestart',(e)=>{
//拖动开始的监听函数
})
iTranslate.on('translateend',(e)=>{
//拖到结束监听函数
})
)
}
}
}
</script>