12

我想获取当前地图的边界,以便可以使用 Overpass API 搜索这些边界。

对于传单,我知道该方法只是 map.getBounds(),但我不知道如何在 react-leaflet 中实现它。

class SimpleExample extends React.Component {
  constructor() {
    super();
    this.state = {
      lat: 51.505,
      lng: -0.09,
      zoom: 13,
    };
  }

  componentDidMount() {
    console.log(this.refs.map.getBounds())
  }

  render() {
    const position = [this.state.lat, this.state.lng];
    return (
      <Map center={position} zoom={this.state.zoom} ref='map'>
        <TileLayer
          attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
          url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
        />
      </Map>
    );
  }
}

这是我尝试过的。错误说这this.refs.map.getBounds不是一个功能。

4

1 回答 1

12

试试this.refs.map.leafletElement.getBounds

根据文档

您可以使用该组件中的 this.leafletElement 直接访问该组件创建的 Leaflet 元素。这个leaflet元素通常在componentWillMount()中创建,除了Map组件,它只能在容器渲染后创建。

这是一种说法,他们将传单对象作为leafletElement属性存储在其组件对象上。

于 2016-11-21T20:34:33.430 回答