【react-leaflet】Locateインスタンスを使用して制度の高い現在地アイコンを作成する

  • 2020年11月30日
  • 2020年11月30日
  • React

googlemapAPIにはハイクオリティかつ多機能なプロパティがいくつも備わっています。

react-reafletでもgoogle程ではないですがオプションで設定することで以下のようなヌルヌル動く

現在地アイコンを表示することができます。

ポイントは、drawCircleとdrawMarker。前者が現在地周辺を円形の波で浸潤させて表示するエフェクトで

後者は青丸のアイコンになります。青丸の外線には現在地測定を表すプログレスバーのようなものが

流れています。

※Locateを使用するにはnpm i leaflet.locatecontrolを実行してください。

 

</pre>
const locateOptions = {
position: 'bottomleft',
drawCircle: true,
drawMarker: true,
};

<LocateControl options={locateOptions} startDirectly/>
<pre>
</pre>
<div>
<div>import Locate from "leaflet.locatecontrol";</div>
</div>
class LocateControl extends Component {
componentDidMount() {
const { options } = this.props;
const { map } = this.props.leaflet;

const lc = new Locate(options);
lc.addTo(map);
}

render() {
return null;
}
}
<pre>

 

この現在地アイコンを別コンポーネントで作り、propsとして受け取った後にコンストラクタに設定します。

後は他のプロパティと同じaddToでマップに追加すれば完了。

完成図はこちら。

 

ハイブリッドアプリでここまでのクオリティに仕上がるのはすごい。

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

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

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

CTR IMG