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

Google Maps APIを使う1番のメリット(理由)はオリジナルのピンを設置できることです。
「オリジナルのピンを設定する方法を調べてみたらGoogle Maps APIっていうのを使わないといけないらしい」となって使う人も多いのでは無いでしょうか?
今回はそんなオリジナルのピンの設定方法についてまとめておきます。
Google Maps APIの設定
Google Maps APIの初期設定については過去に記事にしてあるのでそちらをご覧ください。
まずは下記の基本のコードでGoogle Maps APIでマップを表示させます。
<div id="map"></div>
<script>
initMap();
function initMap() {
let map = new google.maps.Map(document.getElementById('map'), {
center: {lat: - 35.681382, lng: 139.766083},
zoom: 8
});
}
</script>ピンの追加
ピンの追加の仕組み
ピンを追加するときはnew google.maps.Markerを使って、オプションとして下記の情報を設定します。
| オプション名 | 内容 |
|---|---|
| map | 反映するGoogle Maps(new google.maps.Map)を指定 |
| position | ピンを設置するポジション(new google.maps.LatLng)を指定 |
| icon | ピンの設定をオブジェクト形式で、アイコンURLやサイズを指定 |
icon のプロパティ
「icon」のプロパティでは、さらにアイコンの細かい情報を入力します。
| プロパティ名 | 内容 |
|---|---|
| url | アイコンのURLパスを指定 |
| size | アイコンの表示する部分のサイズ(new google.maps.Size)を指定 |
| scaleSize | 画像の表示サイズを指定 |
| anchor | 画像の支点を指定 |
| labelOrigin | ラベルを付ける場合のラベルの支点を指定 |
| origin | anchorやsizeの支点を指定 |
実際のコード
ピンを1つ追加する
先ほど紹介したオプションを使って最低限アイコンを表示させたい場合は、下記のようなコードになります。
function initMap() {
let map = new google.maps.Map(document.getElementById('map'), {
center: {lat: - 35.681382, lng: 139.766083},
zoom: 8
});
//マーカーの追加
let marker = new google.maps.Marker({
position: {lat: - 35.681382, lng: 139.766083}, // ピンの緯度・経度
map: map, // 追加するGoogle Mapsを指定
icon: {
url: './images/pin.png' // ピンの画像パスを指定
}
});
}これでマーカーの追加ができます。
ピンを複数追加する
ピンを複数追加したい場合は、ピンの情報を下記のように管理して、for文でピンの追加をするようにすると管理がラクになります。
markers = [
{
lat: - 35.681382,
lng: 139.766083,
icon: './images/pin_1.png'
},
{
lat: - 35.681482,
lng: 139.766183,
icon: './images/pin_2.png'
},
{
lat: - 35.681282,
lng: 139.766043,
icon: './images/pin_3.png'
},
];for (let i = 0; i < markers.length; i++) {
let markerPosition = new google.maps.LatLng({lat: markers[i]['lat'], lng: markers[i]['lng']})
let marker = new google.maps.Marker({
position: markerPosition,
map: map,
icon: {
url: markers[i]['icon']
}
})
}


Visual Studio Codeで英単語のスペルチェックをしてくれる拡張機能「Code Spell Checker」
Google Maps APIでピンのアクティブ時にピン画像を変える方法
iCLUSTA+でWordPressのアップロード容量を上げたいときのメモ
Bracket Pair ColorizerでVisual Studio Codeの括弧を色分けして見やすくする
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
Visual Studio CodeでCSVの編集を見やすく行う拡張機能「Edit csv」
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
「EWWW Image Optimizer」を使ってWordPressをWebPに対応する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keyboard Maestroのこれだけ覚えておけば良さそうなアクション紹介
Nuxt.jsでのページ遷移設定方法(Vue Routerやnuxt-link)|Nuxt.jsの基本
gitignoreで特定ファイルをGitで無視する方法
学生から社会人、自分がWebデザイナーとして社会に出る前に立てた目標
Chrome開発者ツールを使って、CLSエラーの原因となっている場所の特定をする方法
Visual Studio Codeを使ったコード整形方法(Fomatter)
時間に合わせてディスプレイの色温度を調節してくれるアプリ「f.lux」の導入方法
Google Maps APIでピンをクリックしたときに吹き出しを表示する方法
間違えて学習してしまったATOKの不要な変換候補を削除する方法