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.js
React 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 | マップコンテナの現在のサイズをピクセル単位で返します。 |
以上です。