プロジェクト内に地図を表示する時に、よく Leaflet
というライブラリを使っているのですが、今回はその Leaflet を React コンポーネントとして簡単に実装できるライブラリ react-leaflet
のご紹介です。
公式サイトはこちらから。
React-Leaflet · ⚛️ React components for 🍃 Leaflet maps
https://react-leaflet.js.org/
Leaflet の公式サイトはこちらです。
Leaflet – a JavaScript library for interactive maps
https://leafletjs.com/
実装方法ですが、まず Leaflet
と react-leaflet
をインストールします。
npm install leaflet react-leaflet --save
上記のコマンドを実行し終えたら、あとは任意の場所に下記を追加するだけです。
まず、下記で必要なファイルをインポートします。
import 'leaflet/dist/leaflet.css'; import { Map, Marker, Popup, TileLayer } from 'react-leaflet';
そして地図を表示したい場所に下記コードを追加します。
<Map center={[地図の中央位置(緯度経度)]} zoom={13}> <TileLayer url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" attribution="© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors" /> <Marker position={[マーカーを表示したい場所(緯度、経度)]}> <Popup>[吹き出しに表示するテキスト]</Popup> </Marker> </Map>
作業としてはこれだけ!
なお、デフォルトのマップピンではなく、他の画像に置き換えたいときは下記のようにします。
import L from 'leaflet'; const marker = L.icon({ iconUrl: '[マップピンの画像]', iconSize: [25, 41], iconAnchor: [13, 41], popupAnchor: [0, -45], shadowUrl: '[マップピンの影の画像]', shadowSize: [30, 60], shadowAnchor: [8, 60] });
アイコンのサイズやアンカー位置は任意の数値に置き換えてください。
上記を追加したら、マーカーコンポーネントを下記のように書き換えます。
<Marker position={[マーカーの緯度経度]} icon={marker}><Popup>[吹き出しに表示するテキスト]</Popup></Marker>
icon
プロパティで、上で設定したマーカーを指定しています。
マーカーコンポーネントは、他にもアイコンの透明度や、ドラッグの許可/禁止を設定できるプロパティがあります。
詳しくは、公式サイトの API を参考にしてください。
以上、React のプロジェクトで Leaflet を実装できるライブラリ「react-leaflet」のご紹介でした。
ご参考になれば幸いです。