【Power Apps】Premiumライセンスを使用せずマップを表示する方法

■はじめに

Power Appsで住所から地図を表示する機能を検証する中で、Premiumライセンスを使わずに実現できないか検討する機会がありました。そこで本コラムでは、Premiumライセンスを使用せずに住所から地図を確認する方法として、実装例を紹介します。

■実装内容

本コラムで紹介するのは、Power Appsの画面内に地図を埋め込んで表示する方法ではありません。Launch関数を用いてデータソースの住所情報をGoogleマップに渡し、ブラウザ(別タブ/別ウィンドウ)で地図を開く方法を解説します。

■テストデータ

今回の検証ではShare Pointリストをデータソースとし、Company列(会社名)とAddress列(住所)の構成とします。

図1:データソース

■実装方法

前提:図1のデータソースからアプリを自動作成しておきます。
(作成方法:SharePointリスト上部の「・・・」-「統合」-「Power Apps」-「アプリの作成」)

手順1:アイコンの追加
 自動作成したアプリのギャラリーコントロールのテンプレートに、地図であることが分かるアイコンを追加します。
※コントロールの検索欄に「場所」と入力すると、該当するアイコンが表示されます。

図2:アイコン追加後の画面

手順2:
 手順1で追加したアイコンの OnSelect プロパティに以下の式を設定します。

Launch(
“https://www.google.com/maps/search/?api=1&query=”&EncodeUrl(ThisItem.Address)
)

図3:OnSelectプロパティ

Launch関数
指定したURLやWebページを開くための関数です。
本コラムでは、住所情報を含んだGoogleマップのURLを指定し、ブラウザ(別タブ/別ウィンドウ)で地図を表示するために使用します。

EncodeUrl関数
文字列をURLとして安全に扱える形式に変換する関数です。
住所に含まれるスペースや記号(例:番地の「-」など)が原因でURLが正しく解釈されないことがあるため、住所文字列をURLエンコードしてからLaunch関数に渡します。

Googleマップの検索URL(queryパラメータ)
 「https://www.google.com/maps/search/?api=1&query=」の”query=”の後ろに検索したい文字列(住所) を渡すと、その住所でGoogleマップの検索結果(地図)を開けます。図3では ThisItem.Address を指定しているため、ギャラリーの各行(レコード)の住所に応じた地図が開きます。

(以下は当社オフィスの住所での表示例です)

図4:マップアイコンクリック後の表示

■まとめ

 Power AppsでPremiumライセンスを導入すれば、地図をアプリ上に表示する方法も選択できます。一方で、ライセンス制限の範囲内でも、実装を工夫すれば外部ブラウザを活用した形で地図表示を実現可能です。同様の要件がある場合は、ぜひ試してみてください。

cropped-logo-1.png_noindex

技術とノウハウでデジタルシフトをサポート
中小企業の頼れるパートナー

執筆者: 村瀬 俊昭(株式会社クロスディーズ システム技術統括エンジニア)

前職では社内システムの運用、サーバーの監視、システム運用業務の構築、システム開発業務といった業務に幅広く携わる。2021年より株式会社佐々木総研にてロボットの設計・開発、社内SEとして従事している。釣りが趣味で、大のビール好き。