React Leaflet は、React.js フレームワークと Leaflet ライブラリを組み合わせた地図コンポーネントの作成を容易にするためのライブラリです。この記事では、useMapEvent の使い方と使用できるイベントやメソッドをまとめています。
パッケージのインストールとフォルダ構成
アプリを作成します。
npx create-react-appパッケージをインストールします、leaflet と react-leaflet を使用します。
npm install leaflet react-leafletファイル構成
src //
|-- index.js
|-- index.css
|-- App.css
|-- App.js
`-- conponents //
`-- mapEvent.jsReact Leaflet マップ表示とレイヤーコントロール
2023年06月06日
leafletuseMapEventの使い方
import {
MapContainer,
TileLayer,
} from "react-leaflet";
import "leaflet/dist/leaflet.css";
import "./App.css";
import MapEvent from './components/mapEvent'
const center = [35.3628, 138.7307];
function App() {
return (
<MapContainer center={center} zoom={10} 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"
/>
<MapEvent />
</MapContainer>
);
}
export default App;
7, 18: <MapEvent /> コンポーネントをインポートして表示します。
import { useMapEvent } from "react-leaflet";
function MapEvent() {
const map = useMapEvent("click", (location) => {
map.setView(location.latlng, map.getZoom(), {
animate: true,
});
//ポップアップ
// map.openPopup('<div>popup</div>', location.latlng)
// ツールチップ
// map.openTooltip('<p>toolTip</p>', location.latlng)
//ズームイン・ズームアウト
// map.zoomIn(1)
// map.zoomOut(1)
//現在の位置情報
// map.locate({
// setView: true
// })
//中心
// console.log(map.getCenter())
//境界座標
// console.log(map.getBounds())
//マップサイズ
// console.log(map.getSize())
});
}
export default MapEvent;
1: useMapEvent をインポートします。
4 ~ 6: マップ上をクリックすると setView , getZoom メソッドを使用して、その位置に移動します。
使用できるイベント
| click | ユーザーがマップをクリック (またはタップ) すると発生します。 |
| dblclick | ユーザーがマップをダブルクリック (またはダブルタップ) すると発生します。 |
| mousedown | ユーザーがマップ上でマウス ボタンを押すと発生します。 |
| mouseup | ユーザーがマップ上でマウス ボタンを放したときに発生します。 |
| mouseover | マウスがマップに入ると発生します。 |
| mouseout | マウスがマップから離れると発生します。 |
| mousemove | マウスがマップ上を移動しているときに発生します。 |
| contentmenu | ユーザーがマップ上でマウスの右ボタンを押したとき発生します。 |
| keypress | ユーザーがキーボードから文字値を生成するキーを押すと発生します。 |
| keydown | ユーザーがキーボードから文字値を生成するキーと文字値を生成しないキーに対して発生します。 |
| keyup | ユーザーがキーボードからキーを放したときに発生します。 |
| preclick | マップ上でマウスをクリックする前に発生します 。 |
| zoomanim | ズーム アニメーションごとに少なくとも 1 回発生します。 |
使用できるメソッドの一部
| setView | 指定されたアニメーション オプションを使用して、マップのビュー (地理的中心とズーム) を設定します。 |
| getZoom | マップビューの現在のズームレベルを返します。 |
| openPopup | 指定されたコンテンツとオプションを含むポップアップを作成し、マップ上の指定されたポイントで開きます。 |
| openTooltip | 指定されたコンテンツとオプションを含むツールチップを作成し、開きます。 |
| zoomIn | マップのズームをデルタ単位で増加します。 |
| zoomOut | マップのズームをデルタ単位で減少させます。 |
| fitWorld | 可能な最大のズーム レベルで、ほとんど世界全体を含むマップ ビューを設定します。 |
| locate | 現在の位置情報を取得します。Locate options |
| getCenter | マップビューの地理的中心を返します。 |
| getBounds | 現在のマップ ビューに表示される地理的境界を返します。 |
| getSize | マップコンテナの現在のサイズをピクセル単位で返します。 |
以上です。