地図の画像を取得する

次に、Google Static Maps API を利用することにより、取得した緯度・経度から地図の画像を取得することができます。URLは下記の通りです。

http://maps.google.com/maps/api/staticmap

1日に取得できる画像は1000件までという制限があり、これを超えると次のような画像が表示されます。

図2.制限を超えた場合の画像

リクエスト引数のうち、今回利用するものは以下の通りです。

表3.今回利用するリクエスト引数

引数名 内容 設定例
sensor 場所センサー搭載のデバイスか否か false(PCからなので)
size 地図画像のピクセル数 512x512
center 中心の緯度と経度 35.7066254,139.6009603
zoom 地図の縮尺 0(地球全体)~21(最も細かい)
maptype 地図のタイプ roadmap(道路地図、既定値)、satellite(航空写真)、terrain(地形図)、hybrid(道路地図+航空写真)

Googleマップ内の各タイルは256×256ピクセルで構成されているので、size=256x256、center=0,0、zoom=0を指定すると、地球全体の地図(北緯90~南緯90度、西経180~東経180度)が取得できます。Googleマップは、地球を中心から円筒に投影し、円筒を切り開いたメルカトル図法に従っているようです。

図3.メルカトル図法

zoomは、1増えると縮尺が倍になる(最大値は21)ので、size=512x512、zoom=1の指定でも地球全体になります。Excelワークシート内に表示するには、512x512のサイズが適していますので、size=512x512、zoom=1を基本にして各種の計算を行います。

Excelによる開発

以下の手順で行います。

1.各種の値を格納する名前と関数を定義する
2.操作画面用のオブジェクトを設定する
3.住所から緯度・経度を取得するVBAを記述する
4.緯度・経度・ズーム値から地図を取得するVBAを記述する
5.移動・ズームボタン・地図種別クリック時に地図を変更するVBAを記述する