1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

デザイナー向けGoogleMapのスタイル指定方法

Last updated at Posted at 2018-07-19

GoogleMapのスタイルの指定方法が、ちょっとだけ分かりにくく感じたので、自分なりに解釈してみました。
そのときのメモ :pencil:です◯

基本的なルール

GoogleMapのスタイルは、

  • featureType (スタイルをあてる対象)
  • elementType (その対象を構成するデザイン要素)
  • stylers (スタイル)

という3つセットをJSON形式で指定します。↓のような感じです。

[
  {
    "featureType": "road",
    "elementType": "geometry.fill", 
    "stylers": [{ 
        "color": "#ff0000"
      }
    ]
  }
]

featureType、elementType、stylersとは

3つセットのうち、stylersはなんとなく想像できますが、 featureType、elementTypeはいまいちピンと来ない方もいるかと思います。
GoogleMapAPIの Style Referenceを見た私なりの解釈は以下のような感じです。

  • featureType (スタイルをあてる対象)
    • 地図上のどこを変えるのか指定するためのもの。
    • 道路、公園、水域など、地図上の地理的特徴(feature)で指定できるのが特徴です◯
  • elementType (その対象を構成するデザイン要素)
    • 上記で指定したfeatureTypeのどの部分を変えるのか指定するためのもの。
    • 塗り、線、テキストカラーなどです。
  • stylers (スタイル)
    • 上記で指定した、どこのどの部分をどうするかを指定するためのもの。
    • 色は赤、色相はこれくらい、彩度は80・・・などです。

具体的にどんな指定ができるかは、Style Referenceで詳しく説明してくれています◯

cssに例えてみると・・・

なんとなくcssに似てるかしらと感じたので、cssに例えて解釈してみました。
というのも、cssも

  • セレクター(スタイルをあてる対象)
  • プロパティ(対象を構成するデザイン要素)

の3つセットで指定しているところが似ているからです。

例えば、cssで .road というclassを持つ要素の塗りを変えるには以下のようになります。

.road { /* セレクター */
    background: #ff0000; /* プロパティ:値; */
}

これをGoogleMapAPIで実現するには、↓のような感じです◯

[
  {
    "featureType": "road", //featureType
    "elementType": "geometry.fill", //elementType
    "stylers": [{ //stylers
        "color": "#ff0000"
      }
    ]
  }
]

まとめると

  • featureType → セレクター
  • elementType → プロパティ
  • stylers → 値

のように捉えると、少し分かりやすいのかなあと。

ただ、cssとGoogleMapは別物なので、上記のような捉え方は少し語弊もあるかもしれません。
あくまで、雰囲気をつかむための解釈の一つと思っていただければと思います◯

ちなみに上記の結果は↓のようになります。

スクリーンショット 2018-07-19 13.40.48.png

道路の塗りが赤になっていますね◯

もっとスタイルを変えるには

css同様、featureType、elementType、stylersの3つセットを複数書けば、それだけ多くのスタイルを指定できます。

[
  {
    "featureType": "road", 
    "elementType": "geometry.fill",
    "stylers": [{ 
        "color": "#ff0000"
      }
    ]
  },{
    "featureType": "water", 
    "elementType": "geometry.fill",
    "stylers": [{ 
        "color": "#3399ff"
      }
    ]
  },
    . . .
]

また、featureType、elementTypeを指定しないこともできます。
この場合は、全てのfeatureType、全てのelementTypeがそれぞれ指定されます。

参考

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?