React Leaflet は、React.js フレームワークと Leaflet ライブラリを組み合わせた地図コンポーネントの作成を容易にするためのライブラリです。この記事では、地図の境界線を指定する方法と、その際に便利なメソッドの使い方を確認します。
パッケージのインストールとフォルダ構成
アプリを作成します。
npx create-react-app
パッケージをインストールします、leaflet と react-leaflet を使用します。
npm install leaflet react-leaflet
ファイル構成
src //
|-- index.js
|-- index.css
|-- App.css
`-- App.js
React Leaflet マップ表示とレイヤーコントロール
2023年06月06日
leaflet境界線を指定する
import { MapContainer, TileLayer, useMapEvent } from "react-leaflet";
import L from 'leaflet'
import "leaflet/dist/leaflet.css";
import "./App.css";
const center = [35.3628, 138.7307];
function App() {
var northEast = L.latLng(50.56928286558243, 149.89746093750003),
southWest = L.latLng(17.09879223767869, 126.29882812500001),
bounds = L.latLngBounds(northEast, southWest);
const Event = () => {
const map = useMapEvent('click', (location) => {
console.log(map.getBounds())
})
}
return (
<MapContainer center={center} maxBounds={bounds} zoom={5} zoomControl={false} id="map">
<TileLayer
attribution='© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Event />
</MapContainer>
);
}
export default App;
8 ~ 10: 地図の北東、南西の座標が必要になります。
18: maxBounds props に座標を指定すると、境界線を指定することができます。
便利なメソッド
1: useMapEvent をインポートします。23: Event コンポーネントを使えるようにします。
12 ~ 16: 地図上をクリックすると、現在の表示されている範囲の北東、南西の座標を取得することができます。
以上React Leaflet 地図の境界線(見える範囲)を指定する方法でした。