如何解决此MarkerCluster签入/签出错误(传单Salesforce)?

时间:2019-04-22 08:01:51

标签: javascript leaflet salesforce salesforce-lightning leaflet.markercluster

问题是,当我在叠加层上签出并再次签入后,收到此错误:

  

未捕获的TypeError:无法读取未定义抛出的属性'x'   dist / leaflet.markercluster.js:1:25696 TypeError:无法读取属性   L.DistanceGrid._sqDist(DistanceGrid.js:114)上未定义的'x'
  在e._addLayer的L.DistanceGrid.getNearObject(DistanceGrid.js:94)   (MarkerClusterGroup.js:974)在评估(MarkerClusterGroup.js:249)
  在e.addLayers处(e.addLayers(MarkerClusterGroup.js:283)   (layersupport.js:99)在e.onAdd(layersupport.js:517)在   位于e.whenReady(leaflet.js:5)的e._layerAdd(leaflet.js:5)   e.addLayer(leaflet.js:5)

created() {
    axios.get("/api/category")
        .then(res => this.categories = res.data)
        .catch(err => console.log(err)); 
},

当我签入时,p是不确定的。我已经为这个错误苦苦挣扎了很长时间。也许您有一些建议

标记是为组定义的,它们可以正确显示,只有签入才能签出。一旦我将它们检出,群集就会消失,并且一旦签入,我就会收到之前提到的错误,而不是在地图上重新显示群集

这是控制器代码:

I saw that this function from DistanceGrid(is in leaflet library) which is called when i check in on the overlay 

_sqDist: function (p, p2) {
      var dx = p2.x - p.x,
          dy = p2.y - p.y;
      return dx * dx + dy * dy;
  }

PS:我不知道如何提供可行的版本,因为这是Salesforce应用

1 个答案:

答案 0 :(得分:1)

Leaflet.markercluster.layerSupport插件可能无法很好地处理chunkedLoading选项。

我不确定您为什么需要定期“结帐”和“签到”?您是要使用“图层控件”来删除/添加叠加层吗?

否则,如果“仅”需要一种将Leaflet.markercluster与Layers Control结合使用的解决方案,则可以尝试使用更简单的插件Leaflet.FeatureGroup.SubGroup,尽管如果chunkedLoading是这样做的原因,问题,该插件可能也相同。