1 of 38

MapLibre GL JSの

普及活動と

初心者へのTips

あさひな

2023/11/09 MapLibre Meetup Japan #01

2 of 38

本業

 SIer システムエンジニア

副業

 スタートアップ企業 フロントエンドエンジニア

 大手企業 GISエンジニア

所属コミュニティ

 OSGeo日本支部 理事

あさひな

@asahina820

3 of 38

目次

MapLibre GL JSとは?

普及活動の動機

普及活動の内容

初心者がつまずきやすいポイント

まとめ

4 of 38

MapLibre GL JSとは?

5 of 38

MapLibre とは

オープンソースの

地図ライブラリ群

  • MapLibre GL JS
  • MapLibre Native
  • MapLibre RS などなど・・

出典: MapLibre

6 of 38

MapLibre GL JSとは

JavaScript/TypeScript用ライブラリ

mapbox-gl-jsのオープンソースフォークとして誕生

出典: MapLibre

7 of 38

MapLibre GL JSの特徴

  • ベクトルタイルを表示できる
  • MapLibreスタイルから地図を表示できる
  • WebGLを使った高速な描画が可能

出典: MapLibre

8 of 38

他の地図ライブラリ

  • Leaflet
    • 軽量で初心者でも使いやすい
  • OpenLayers
    • 投影法の指定やタイルの切り出しなど高機能なことができる
  • CesiumJS
    • 3D地球儀や3D地物を表示することができる
  • deck.gl
    • ヒートマップなど視覚表現に優れたレイヤを使うことができる

9 of 38

MapLibre GL JSの推しポイント

高機能!

  • ベクトルタイルを表示
  • 2D/3Dの地図を表示

高性能!

  • WebGLを使った高速な描画

ポイント表示限界数の比較記事

10 of 38

普及活動の動機

11 of 38

あさひなの   との出会い

Geospatial Hackers Programにて・・

3Dの建物を表示したい・・

あさひな

MapLibre GL JS を使うといいよ

松澤さん

12 of 38

 に感動

3Dの建物を表示できた!

動作も軽い!

  SUGEEEE!

13 of 38

  って難しくない?

最初はよく分からなくて苦労した

あさひな

style.json ってなんだ?

レイヤの追加ってどうやるの?

ドキュメント、全部英語やん・・

どれ見ればいいんだ??

14 of 38

初心者にわかりづらい説①

公式ドキュメントで

学習しにくい!?

  • チュートリアルがない
  • Exampleが探しづらい
  • Exampleに解説が少ない

15 of 38

チュートリアルがない!

手を動かしながら学べる教材が欲しい・・

できれば解説付きで・・

Reactのチュートリアル

Vue.jsのチュートリアル

16 of 38

Exampleが探しづらい

Exampleはたくさんあるけど・・ポイント表示はどれだ?!

初見では探すのに苦労した・・

17 of 38

Exampleに解説が少ない

id、typeってなんだ!?

初心者がStyle Specifications読むのキツイ

18 of 38

初心者にわかりづらい説②

技術記事が少ない!?

  • Qiitaの「MapLibre」タグが付いた記事は133記事(2023/11/9現在)
  • ライバル(?)のLeafletは326記事
  • 覇権(?)のReactは15654記事

19 of 38

動機

MapLibre GL JS の良さを広めたい

そのために・・

初心者に分かりやすいコンテンツ

提供したい!

20 of 38

普及活動の内容

21 of 38

Qiita投稿

地図表示、地物表示の方法などを

Qiitaに投稿

  • コードの解説付き
  • 去年の30DayMapChallengeではMapLibreの記事を多数投稿!

22 of 38

Zenn本出版

初心者が体系的に学べるように

Zennで無料で読める本を出版📚

  • コードの解説付き
  • サンプルコードも公開

23 of 38

Zenn本出版

「分かりやすい」と好評!!

24 of 38

ハンズオン実施

FOSS4Gイベントにて

MapLibre初級編のハンズオン講師を担当

  • 実施地域のデータを使ってWebGISを作成
  • テキスト、ソースコードを公開

FOSS4G TOKAI 2023

FOSS4G 2023 Japan

25 of 38

ハンズオン実施

「分かりやすい」と好評!!

26 of 38

初心者がつまずきやすいポイント

27 of 38

styleの書き方よくわからん

Style Specificationsに書いてある

最低限わかってればヨシ!

28 of 38

背景地図が表示されない

CSSの記載を忘れずに

(最初ハマった・・)

CSS書いてないけど

高さ指定が必要!

29 of 38

レイヤの表示順は?

layer配列の上から順に描画される

sort-key プロパティを使うと

値によって並び順を制御できる

背景地図が下

ポイントが上

30 of 38

CDNを使ったライブラリのバージョン指定

バージョンを指定しない場合は

最新バージョンをとってくる

もちろんバージョン指定もできる

リダイレクト

CDNのリンクにバージョンを指定しない場合の書き方

31 of 38

Maputnik分かりづらい

スタイル仕様用のエディタ

使いこなせるようになると便利

解説記事書いたよ!

32 of 38

レイヤの表示/非表示どうやるの?

方法はいろいろ・・

  • setLayoutProperty 使う ☆オススメ
  • OpacityControl 使う

my-layer が

非表示になる!

33 of 38

というか自分もよくつまづく

私の場合はXで投稿して

有識者に教えてもらっている

疑問点を投げられる場所があるといいな・・

Xで有識者に教えてもらうあさひな

34 of 38

まとめ

35 of 38

  はいいぞ

MapLibre GL JSは高機能!

  • ベクトルタイルを表示できる
  • 3D表示も可能
  • WebGLを使った高速な描画が可能

36 of 38

初心者向け教材

学習に苦労したことをきっかけに

初心者に分かりやすい

コンテンツを作った

  • Qiita
  • Zenn本
  • ハンズオン

37 of 38

今後の展望

もっと  の良さを広めたい!!!

の知見は今後もアウトプット!

ぜひみなさんも!

38 of 38

ご清聴

ありがとうございました!