Skip to content

Instantly share code, notes, and snippets.

@naogify
Last active December 1, 2021 14:13
Show Gist options
  • Save naogify/bb52ac1bf844be6b88fed9fb5b983880 to your computer and use it in GitHub Desktop.
Save naogify/bb52ac1bf844be6b88fed9fb5b983880 to your computer and use it in GitHub Desktop.

Charites でスタイルを編集する

地図の見た目を変更するにはスタイルファイルを編集して下さい。Geolonia の Embed API では MapLibre GL JS スタイル と同じオプションやプロパティを使うことができます。

レイヤーについて

style.yml は下の様になっています。地図の見た目を変更するには、layers より下で読み込まれているレイヤーファイルを書き換えて下さい。

version: 8
{ … 省略 … }
layers:
  - !!inc/file layers/background.yml
  - !!inc/file layers/landcover-grass.yml
  - !!inc/file layers/landcover-wood.yml
  - !!inc/file layers/landcover-grass-park.yml
  - !!inc/file layers/water.yml
  - !!inc/file layers/water-river-lake-ja.yml

レイヤータイプについて

レイヤーファイルは下の様になっています。面の見た目を変えるには fill、 線は line 、点は symboltype に指定して下さい。

id: highway-motorway
type: line
{ … 省略 … }
layout: ...
paint: ...

paint と layoutについて

色やアイコンなどの見た目を決めるには、paintlayout を使います。paint では主に 色や透明度を指定し、layout では アイコンの重なりや padding 等のレイアウトについての変更ができます。 下の図のように、レイヤータイプごとに使える paintlayout の値は変わりますので、どんなオプションが使えるかは、MapLibre GL JS のドキュメントを参考にして下さい。

  • fill(面)
    • paint
    • layout
  • line(線)
    • paint
    • layout
  • symbol(点)
    • paint
    • layout

サンプルコード

高速道路を表示している highway-motorway.yml を見ると、レイヤータイプは line で、paintline-color で、線の色を #FFFFFF にしています。layout では line-cap: round を使って線の両端を丸めています。

id: highway-motorway
type: line
{... 省略 ...}
paint:
  line-color: "#FFFFFF"
  line-width: 1.2
layout:
  line-cap: round
  line-join: round

MapLibre GL JS のドキュメントからオプションを探すには

Geolonia が用意しているスタイルを編集するだけで、オリジナルスタイルを作ることができますが、元のスタイルにないオプションを使いたい方は、下の手順で MapLibre GL JS のドキュメントをご覧ください。

  1. https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/ にアクセスし、右のサイドバーで使いたいレイヤータイプを選んで下さい。

スクリーンショット 2021-11-12 11 13 42

2. そのタイプで使えるオプションの一覧が表示されます。 スクリーンショット 2021-11-12 11 09 31 2

3. 使用したいオプションをクリックするとpaintlayout プロパティかを書いていますので、それに沿ってお使いください。

スクリーンショット 2021-11-12 11 16 34

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment