【发布时间】:2020-01-08 01:03:53
【问题描述】:
我已使用 Leaflet.PixiOverlay 在地图上加载标记或纬度/经度点
现在我有两个要求
- 将现有标记/点 (PIXI.Sprite) 拖放到另一个标记/点上
- 将现有标记/点 (PIXI.Sprite) 拖放到地图上的另一个位置。
我尝试了以下方法,但它不起作用
/**
* In the below for loop identify the marker on which mouse down event has occurred.
* In the 'mouseup' event on map, change the position of the selected marker
*
* **Marker here is PIXI.Sprite**
*/
for (var i = 0; i < markersLength; i++) {
var marker = new PIXI.Sprite(texture);
marker.interactive = true;
marker.buttonMode = true;
marker.on('mousedown', (event) => {
self.map.dragging.disable();
marker['dragging'] = true;
self.selectedMarker = marker;
console.log('event mousedown on marker ', event);
});
marker.on('mouseup', (event) => {
marker['dragging'] = false;
console.log('event mouseup on marker ', event);
});
marker.on('mouseupoutside', (event) => {
//marker['dragging'] = false;
console.log('event mouseupoutside on marker ', event);
self.map.dragging.enable();
})
markerArr.push(marker);
childContainer.addChild(marker);
}
/**
* mouseup event on map should move selected marker but it doesnot
*
*/
this.map.on('mouseup', (event) => {
if (this.selectedMarker) {
let markerCoords = this.latLngToLayerPoint(event.latlng, this.map.getZoom());
this.selectedMarker.position.x = markerCoords.x;
this.selectedMarker.position.y = markerCoords.y;
this.selectedMarker = null;
}
})
【问题讨论】:
标签: javascript leaflet pixi.js