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']
}
})
}


gulpでPostCSSを使う方法
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
npm install時に「cb() never called!」とエラーが表示されたときの解決法
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
HTTP/2が設定されているはずなのに、ブラウザ上でHTTP/1.1になってしまう場合はセキュリティソフトを確認
WordPress5.5のサイトマップ機能を無効にする
全角スペースを可視化してくれるVisual Studio Codeの拡張機能「zenkaku」
JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
「Dart Sass」「LibSass」「Ruby Sass」などSassの種類や記法に関するまとめ
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
macOS Mojaveのログイン周りの設定まとめ(ゲストユーザのオフ、ログイン時の壁紙変更)
Todoistでタスクを「繰り返し」に設定してApple Watchから確認するようにすれば、習慣化がしやすくなる!
Webデザイナーを目指す専門学生が技術ブログを書くメリット
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
macOSのシステム環境設定「Mission Control」の設定見直し
Figmaでサクッとワイヤーフレームが作れる素材検索プラグイン「Wireframe」
コード管理に特化したノートアプリ「Quiver」でコードの管理を行う
Alfred 4のスニペットで使えるリッチテキスト機能の使い方
アプリやフォルダを一気に開ける「Workspaces」の環境設定
Vimのプラグインマネージャー「Vundle」のインストール方法