ここではGoogle Maps APIで地図にオリジナルの画像をマーカー表示させる方法についてお話します。
今回、Google Maps APIで地図を表示させるのが初めてという方は、いきなりこの記事を読んでも分からない部分が多いと思いますので、最初に下記の2つの記事からお読みになって下さい。
2018.07.26ここでは、Google Maps APIでサイトに地図を表示させる準備としてAPIキーを取得する方法について見ていきます。
APIキーの取得方法
まず、Googleのアカウントをお持ちでない方はアカウントを作成してください。
Googleアカウン...
2018.07.28ここでは、「Google Maps API」を使った地図の表示方法の基礎を詳しく見ていきたいと思います。
「Google Maps API」を利用するには、APIキーを取得している必要がありますので、準備がまだの方ははじめに下記をご覧ください。
...
Google Maps APIのマーカー表示に必要な設定
前回の記事で地図を表示させるために作成したのがこちらです。
HTML
var mapDiv = document.getElementById( "map" ) ; |
center: new google.maps.LatLng( 35.710063, 139.8107 ) , |
new google.maps.Map( mapDiv, mapOptions ) ; |
上記は最低限、地図を表示させるための設定ですので、ここからマーカーの設定を追加して、下記のようなマーカー入りの地図をはじめに完成させます。
To navigate, press the arrow keys.
var mapDiv = document.getElementById( "map" ) ; |
var map = new google.maps.Map( mapDiv, mapOptions ) ; |
var marker = new google.maps.Marker( { |
マーカーを表示させるためにはMarkerクラスというものを使います。
Markerクラスでは、下記の2つの設定が必要です。
- マーカーを表示させる「地図」の指定
- マーカーを表示させる「位置座標」の指定
具体的にはMarkerクラスというのは、下記のようなものです。
下準備|変数を使用する
下準備としてマーカーに必要な「地図」と「位置座標」を変数に代入します。
Mapクラスを変数に代入
地図を表示させるために使用するMapクラスを変数mapに代入します。
変更前
new google.maps.Map( mapDiv, mapOptions ) ; |
変更後
var map = new google.maps.Map( mapDiv, mapOptions ) ; |
位置座標を変数に代入
位置座標を変数に代入するには下記のようにします。
ここでは、mapPositionという変数を使いました。
今までは、地図のオプションで中心地点を指定するときは
center: new google.maps.LatLng( 35.710063, 139.8107 ) , |
という形で指定していしたが、変数になったので、
という形になります。
以上の変更点をまとめると、下記のようになります。
HTML
var mapDiv = document.getElementById( "map" ) ; |
var map = new google.maps.Map( mapDiv, mapOptions ) ; |
さて、これで下準備が終わりましたので下にMarkerクラスを追加していきます。
Markerクラスの追加
先ほどもお話した通り、Markerクラスは下記の通りです。
ここに先ほどの変数、map
とmapPosition
を指定します。
これでマーカーが表示された地図が完成です。
完成形
var mapDiv = document.getElementById( "map" ) ; |
var map = new google.maps.Map( mapDiv, mapOptions ) ; |
var marker = new google.maps.Marker( { |
オリジナル画像をマーカー表示させる方法
今度は、マーカーにオリジナルの画像を表示させる方法を見ていきましょう。
先ほどマーカーを表示させるところまでやったのでマーカーを画像にするのはとても簡単です。Markerクラスにicon
を追加するだけです。
var marker = new google.maps.Marker( { |
実際に上記の設定で画像を表示させた地図を見てみましょう。
マーカー画像作成のポイント

位置座標は、画像の底辺の左右の中央に配置されますので、できるだけ左右対称の画像にすることをオススメします。また、画像は背景が透明になるpng形式で作成しましょう。
マーカー画像のサイズを変更する方法
画像のサイズを調整したい場合は下記のようにscaledSize
を指定します。
var marker = new google.maps.Marker( { |
scaledSize: new google.maps.Size( 横幅, 高さ ) , |
単位はpxになります。単位は付けずに数字だけを入力しましょう。
上記は先ほどのマーカー画像をscaledSize: new google.maps.Size( 40, 70 ) ,
で指定した例です。画像が小さくなりました。
マーカー画像の位置を調整する方法
上の例は、マーカーをスカイツリーに合わせたいのですが、画像が左右均等でないためにスカイツリーよりも左の方にポイントがずれてしまっている例です。このようにマーカー画像の位置を調整したいときは、下記のようにします。
var marker = new google.maps.Marker( { |
icon: new google.maps.MarkerImage( |
new google.maps.Size( 横幅, 高さ ) , |
new google.maps.Point(0,0), |
new google.maps.Point(ヨコの位置,タテの位置), |
上記のnew google.maps.Point(ヨコの位置,タテの位置),
の2つの値で位置を調整します。

調整の仕方はとしては、左に移動させたいときは「ヨコの位置」の数値をプラスに、右に移動させたいときはマイナスの値にします。タテは上がプラス、下がマイナスとなります。
また、注意点として、画像と位置座標の位置関係が先ほどと変わります。

先ほどまでは、画像の底辺の左右中央に位置座標が来ていたのですが、上記の設定を行う場合は画像の左上の角が位置座標の基点となります。位置を調整する場合は、最初にnew google.maps.Point(0,0),
という形でタテとヨコの調整をゼロにしてみて、どんな表示になるを確認してから調整しましょう。
無事に、このようにしてマーカー画像の位置が調整できました。
マーカー画像のサイズと位置を調整する方法
マーカー画像の位置とサイズを調整したい場合は、下記のようになります。
var marker = new google.maps.Marker( { |
icon: new google.maps.MarkerImage( |
new google.maps.Size( 横幅, 高さ ) , |
new google.maps.Point(0,0), |
new google.maps.Point(ヨコの位置,タテの位置), |
new google.maps.Size( 横幅, 高さ ) , |
先ほどの位置調整の下にサイズ調整を1行追加するだけです。位置を調整したあとで画像サイズを変えると位置がズレてしまうので、はじめに画像サイズを調整してから位置を調整するとスムーズです。
以上が、Google Maps APIで地図にオリジナル画像をマーカー表示させる方法でした。