【React】「React Leaflet」で地図の表示範囲を指定する

ちょっとした小ネタ未満ですが、今後も使いそうなので自分のための備忘録としてまとめ。
React Leaflet で表示している地図の表示範囲を指定する方法についてです。

 

こちらの機能については、公式サイトにコード例がありました。

View bounds | React Leaflet
https://react-leaflet.js.org/docs/example-view-bounds

が、こちらは描画している矩形をクリックした時に、setBounds() を使って、その範囲が地図に納まるように縮尺を変えるという処理でした。
しかし私が実装したい機能ではクリック処理は必要なく、単純に初期読み込み時の縮尺が指定できれば良かったので、上記では若干合わない…。いや、使えるけど…。

で、調べたところ、単なる bounds というオプションがありました。
Example のページばかりを調べていたので気付くのが遅くなりました…。
こちらに表示したい範囲の緯度経度を指定すると、地図の初期読み込み時にその指定範囲が納まるように、地図の縮尺を調整してくれました。
サンプルコードは下記のとおりです。

const bounds = [[34.49452141,137.02728904], [35.06565481, 138.11321663]];
<Map
    center={this.state.latlng}
    bounds={bounds}>
    ......
</Map>

変数 bounds に地図の初期表示範囲を配列で指定しています。
1つ目のデータが、表示したい範囲の左上の緯度経度で、2つ目のデータが表示範囲の右下の緯度経度です。
こちらは state で管理してもOKです。
追加する項目は以上です!

本当にちょっとした小ネタではありますが、個人的にはとても便利なオプションでした。
が、表示したい範囲によっては、ズームレベルとの兼ね合いからか、かなり引きの状態で地図が表示される場合もありました。
その際は、地図のサイズ自体も調整するようにしてください。

 

以上、React Leaflet で地図を表示した際に、初期表示範囲を指定する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG