在我的多边形'dragend'函数上,我通过(e.target._newPos)获取新位置,该位置代表我图层上的位置。
但是当我将这一点转换成如下:
let containerPoint = layer._map.layerPointToContainerPoint(e.target._newPos);
let latlng = layer._map.containerPointToLatLng(containerPoint);
我得到了一些我想要的坐标。但是当我试图在我的传单地图图层上显示它们时,一个zoomin或者那个点跳出我的地图,所以wtf正在进行?
import PolygonLayer from 'ember-leaflet/components/polygon-layer';
。 。
draggable.on('dragend', (e) => {
let containerPoint = layer._map.layerPointToContainerPoint(e.target._newPos);
let latlng = layer._map.containerPointToLatLng(containerPoint);
let dragEnd = this.get('onDragEnd');
dragEnd(latlng);
});
答案 0 :(得分:0)
在我的模板中,我有一张地图的演示文稿
items: {},
我有一个项目组件
didRender() {
let layer = this.get('_layer');
let path = layer && layer._path;
if (!path) {
return;
}
let draggable = new L.Draggable(path);
draggable.enable();
draggable.on('dragend', (e) => {
let containerPoint = layer._map.layerPointToContainerPoint(e.target._newPos);
let latlng = layer._map.containerPointToLatLng(containerPoint);
let dragEnd = this.get('onDragEnd');
dragEnd(latlng);
});
},
所以onDragEnd我将使用新的latlngs更新拖动的项目位置但是在我更新后该项目正在地图上跳跃