WebDesigner's Memorandumウェブデザイナーの備忘録

Google Maps APIでマップの見た目をカスタマイズする方法

Google Maps APIでマップの見た目をカスタマイズする方法

Google Maps APIを使うと、マップ上に表示させるピンの種類を変えたり、道路や建物・水域のスタイルを変更して見た目をかなり柔軟にカスタマイズできます。

今回はその方法についてまとめておきます。

基本となるマップ

Google Maps APIをまだ取得していない場合は、過去に紹介しているので、取得しておいてください。

今回は下記のコードのstylesオプションに、オプション内容を指定してカスタマイズします。

<div id="map"></div>

<script async defer src="https://maps.googleapis.com/maps/api/js?key=APIキー&callback=initMap"></script>
<script>
function initMap() {
  let map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: - 35.681382, lng: 139.766083},
    zoom: 8,
    styles: [
      {
        // 今回のstylesオプションを指定する場所
      },
    ],
  });
}
</script>

<style>
 #map {   width: 100%;   height: 420px; }
</style>

ちなみに、前回の記事でも紹介しましたが、centerが表示するマップの緯度・経度、zoomがマップの拡大率になります。

stylesオプションの基本

stylesオプションは、大きく分けて下記の3つを1組の波括弧{}で囲んで指定します。

項目内容具体例
featureType反映する地形情報を指定道路・建物・水域を表示するかどうかの設定
elementType反映する要素を指定ラベルやアイコンなどを表示するかどうかの設定
(特定の種類のラベルだけ非表示も可能)
stylers上記2つ以外のスタイルを指定色の変更など、見た目を変更する設定

オプションを指定するときは、「featureType(どこの)」「elementType(なにを)」を指定して、そのあとに「stylers(どんな見た目にするのか)」で1セットです。
{}を増やすことで特定の要素にだけ他とは違うスタイルを反映したりもできます。

styles: [
  {
      featureType: 'どこの',
      elementType: 'なにを',
      stylers: [
      // どんな見た目にするのか
    ],
  },
  {
      featureType: 'どこの',
      elementType: 'なにを',
      stylers: [
      // どんな見た目にするのか
    ],
  },
],

ちなみに、featureTypeelementTypeは、省略するとすべての要素が表示(デフォルトのGoogle Mapsと同じ)になります。

featureTypeで指定できる値

featureTypeでは場所に関しての情報を指定します。

内容備考
allすべて 
administrative国や都市などの行政が関わる領域 
administrative.countryadministrativeの国だけ 
administrative.land_parceladministrativeの区画だけ 
administrative.localityadministrativeの地区や市など 
administrative.neighborhoodadministrativeの周辺地域 
administrative.provinceadministrativeの州や県 
landscape山や砂漠などの風景情報 
landscape.man_madelandscapeの人工建築物 
landscape.naturallandscapeの自然物 
landscape.natural.landcoverlandscapeの自然物の中の土地被覆物 
landscape.natural.terrainlandscapeの自然物の中の地形 
poi観光施設や学校・講演などのスポットPoints of interestの略
poi.attractionpoiの観光名所 
poi.businesspoiの企業や店舗情報 
poi.governmentpoiの政府機関 
poi.medicalpoiの病院や警察などの緊急スポット 
poi.parkpoiの公園 
poi.place_of_worshippoiの教会などの宗教施設 
poi.schoolpoiの学校 
poi.sports_complexpoiのスポーツ施設 
road道路 
road.arterialroadの幹線道路 
road.highwayroadの公道 
road.highway.controlled_accessroadの公道の中の高速道路など

有料などで出入りが制限されている道路

road.localroadの地方道 
transit公共交通機関(電車の路線や駅) 
transit.linetransitの路線 
transit.stationtransitの駅空港やバスの停留所なども含む
transit.station.airporttransitの空港 
transit.station.bustransitのバスの停留所 
transit.station.railtransitの鉄道 
water水域 

elementTypeで指定できる値

featureTypeでは場所を指定したあとに、elementTypeでその場所にある何を変更するのか指定します。

内容
allすべて
geometry対象の図形や塗りや線
geometry.fillgeometryの塗り
geometry.strokegeometryの線
labels建物のラベルやアイコン
labels.iconlabelsのアイコン
labels.textlabelsのテキスト
labels.text.filllabelsのテキストの塗り
labels.text.strokelabelsのテキストの線

stylersで指定できる値

最後にstylersで見た目を指定します。

内容指定方法
hue色の設定#付きのカラーコード6桁で指定(3桁の省略などは無効)
lightness明度の設定-100〜100の間の数値で指定
saturation彩度の設定-100〜100の間の数値で指定
gammaガンマ補正の設定0.01〜10.0の間の数値で指定
invert_lightness明度の反転の設定true(明度を反転)、false(反転しない)の真偽値で指定
visibility表示状態の設定“on”(表示)、”off”(非表示)、”simplified”(単純化して表示)の文字列で指定
color色の設定#付きのカラーコード6桁で指定(3桁の省略などは無効)
weight地物の厚みpxで単位の数値で指定

これでGoogle Mapsにあるどの要素に対しても色を変えたり、表示・非表示を切り替えたりできます。

見た目はカスタマイズする必要はなくても、サイトによってはvisibilityを使って不要なピンを削除しておけば、Google Mapsはかなり見やすくなります。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね