地図の画像を取得する
次に、Google Static Maps API を利用することにより、取得した緯度・経度から地図の画像を取得することができます。URLは下記の通りです。
http://maps.google.com/maps/api/staticmap
1日に取得できる画像は1000件までという制限があり、これを超えると次のような画像が表示されます。
リクエスト引数のうち、今回利用するものは以下の通りです。
表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マップは、地球を中心から円筒に投影し、円筒を切り開いたメルカトル図法に従っているようです。
zoomは、1増えると縮尺が倍になる(最大値は21)ので、size=512x512、zoom=1の指定でも地球全体になります。Excelワークシート内に表示するには、512x512のサイズが適していますので、size=512x512、zoom=1を基本にして各種の計算を行います。
Excelによる開発
以下の手順で行います。
1.各種の値を格納する名前と関数を定義する
2.操作画面用のオブジェクトを設定する
3.住所から緯度・経度を取得するVBAを記述する
4.緯度・経度・ズーム値から地図を取得するVBAを記述する
5.移動・ズームボタン・地図種別クリック時に地図を変更するVBAを記述する