MS Access Tips/Sample and VBA and Blog customize etc...

Googleマップを画像ファイルとして取得する

Accessでフォーム上に地図を表示するときは、WEBプラウザコントロールを使えば簡単に表示出来ます。
しかし、レポートに表示したいときは、WEBプラウザコントロールは使えません。

地図を画像ファイルとして取得できれば、イメージコントロールのソースに設定すればレポートでも表示出来ます。

それ以外でも、静的な地図画像が必要なときはいろいろありそうです。

そこで、VBAで、Googleマップを画像ファイルとしてダウンロードする関数を紹介します。WordやExcelでも当然利用できます。

Googleマップ画像ダウンロード

難易度:

地図画像の取得 Google Static Maps API

以前の記事
住所を元に Googleマップ で地図やルートを表示する - hatena chips
でIEなどのWEBプラウザに地図を表示させる方法は紹介しました。

WEBプラウザコントロールのソースに上記で生成したURLを設定すればフォーム上でも簡単に表示出来ます。

実は、Googleマップでは、URLで静的な画像を取得できる方法が用意されています。

Static Maps API V2 デベロッパー ガイド - Google Maps Image API — Google Developers

例えば、
http://maps.google.com/maps/api/staticmap?center=40.714728,-73.998672&zoom=12&size=400x400&sensor=false
というようにURLで画像にアクセスできます。

住所、地名、郵便場号などで指定することも可能です。ただしURLエンコードしたものを渡す必要があります。(Chromeでは変換しなくてもOKなようです)
http://maps.google.co.jp/maps/api/staticmap?markers=%E6%9D%B1%E4%BA%AC%E9%A7%85&maptype=roadmapsize=400x300&zoom=14&size=400x300&sensor=false

他にもパラメータでいろいろ細かく設定できます。詳細は上記のリンク先を参照してください。

ファイルのダンウロード URLDownloadToFile

URLMON(URLMoniker)ライブラリのAPI関数、「URLDownloadToFile」を使用して、インターネット上の指定URLのファイルをダウンロードすることが可能です。
上記のURLをこの関数に渡せば、地図を画像ファイルとしてダウンロードできそうです。

試してみましょう。

ダウンロード出来ました。意外なほど簡単でした。
URLエンコードもVBAでできるといいですね。これも簡単です。

これを使って、

とすれば日本語で住所を指定できます。

Googleマップ画像取得関数

パラメータを簡単に指定できるように汎用関数にしました。
URLのみ取得できる関数を用意しました。

標準モジュール

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/416-16905654
該当の記事は見つかりませんでした。