ember-leaflet拖点到latlng

时间:2017-01-20 07:05:38

标签: ember.js leaflet

在我的多边形'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);
  });

1 个答案:

答案 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更新拖动的项目位置但是在我更新后该项目正在地图上跳跃