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

例えば、

というようにURLで画像にアクセスできます。

住所、地名、郵便場号などで指定することも可能です。ただしURLエンコードしたものを渡す必要があります。(Chromeでは変換しなくてもOKなようです)

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

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

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

試してみましょう。

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

これを使って、

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

Googleマップ画像取得関数

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

標準モジュール

使用例

拍手する

-2 Comments

とし says..."MAPの画像取得について"

こんにちは。上記の記事にて、MAPの画像取り込みに
挑戦しています。
が、Excelの標準モジュールにペーストし、コンパイルしようとすると、「コンパイルエラー ユーザ定義型は定義されていませんとエラーになります。
どのようにしたら利用できますか?

2017.07.23 17:57 | URL | #6XGrrLw2 [edit]
hatena says..."re:MAPの画像取得について"

mougで質問された方ですよね?
mougで回答してますので、そちらを参照ください。

2017.07.24 12:15 | URL | #5uE6dEgY [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/416-16905654
該当の記事は見つかりませんでした。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。