传单折线在缩放时更改位置

时间:2018-04-11 08:50:08

标签: javascript leaflet polyline

我正在使用传单来显示图表/原理图。

图表上的节点(或'图标')基于带有L.DivIcon的L.Marker,线条(或边缘)使用L.Polyline 我遇到一个问题,当我放大/缩小时线条会改变位置。

为此,我使用的是一个非常简单的CRS,其缩放比例相当于缩放级别:

L.CRS.VerySimple = L.extend({}, L.CRS.Simple, {
   scale: function (zoom) {
      return zoom;
   },

   zoom: function(scale) {
      return scale;
   }
});

当地图放大/缩小时,我会像这样缩放标记(这是在扩展L.marker的类中实现的:

 handleZoom(event, map) {
      const scale = map.getZoomScale(map.getZoom(), map.options.zoom);
      const newWidth = this.initialWidth * scale;
      this.iconElem.style.width = `${newWidth}px`;
   },

这是初始加载(无缩放):

enter image description here

这是在放大后:

enter image description here

可以看到折线向左移动了......

我可以看到两个原因:

  1. 当缩放时,折线处理折线(路径)并不像我预期的那样,我需要以某种方式显式处理坐标? (为了清楚这一点,我不希望线条显得更大'至于图标......只是出现在正确的位置)

  2. 我没有正确处理节点的缩放?

0 个答案:

没有答案