1

我正在使用没有任何城镇标签的地图。我正在放置标签,我需要这些标签在放大/缩小时出现和消失。缩小时只出现大城镇,放大时出现所有城镇。现有的反应传单中是否有此功能?我也在尝试为 Leaflet.LayerGroup.Collision 制作插件,我尝试从 react-leaflet 覆盖 LayerGroup

import React, { PropTypes } from 'react';
import { MapLayer } from 'react-leaflet';
import { layerGroup } from 'leaflet';
import './leaflet-layergroup-collision';

export default class LayerGroupCollision extends MapLayer {
  static childContextTypes = {
    layerContainer: PropTypes.shape({
      addLayer: PropTypes.func.isRequired,
      removeLayer: PropTypes.func.isRequired,
    })
  }

  getChildContext() {
    return {
      layerContainer: this.leafletElement,
    }
  }

  createLeafletElement() {
    return layerGroup(this.getOptions()).collision({margin:5});
  }
}

但我收到错误

未捕获的 TypeError: (0 , _leaflet.layerGroup)(...).collision 不是函数

任何帮助如何实现这个或任何替代的想法?

4

1 回答 1

1

layerGroup 应该是大写 L,LayerGroup

import { LayerGroup } from 'leaflet';

或替代尝试:

import L from 'leaflet';

接着

L.LayerGroup(this.getOptions()).collision({margin:5});
于 2017-03-07T14:40:25.060 回答