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='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'
/>
</Map>
);
}
}
これは私が試したものです。エラーはthis.refs.map.getBounds
は関数ではありません。
this.refs.map.leafletElement.getBounds
をお試しください。
ドキュメント によると:
このコンポーネントのthis.leafletElementを使用して、コンポーネントによって作成されたLeaflet要素に直接アクセスできます。このリーフレット要素は通常、componentWillMount()で作成されます。ただし、コンテナがレンダリングされた後にのみ作成できるMapコンポーネントは除きます。
これは、リーフレットオブジェクトをコンポーネントオブジェクトのleafletElement
プロパティとして格納するという言い方です。