お久しぶりです。田中です。
今回は趣を変えてSalesforceネタにします。
弊社は顧客管理、見積書の発行から受発注、アフターサービスの記録・予定を全てSalesforceで管理しています。
施工現場の住所が登録され、施工当日の目的地になりますが、施工する人の出発地から
「施工場所までの距離/移動時間が簡単に確認出来たら良いな…」との要望が有りましたので、実現可能か試してみました。
要件
- 出発地点と目的地点を用いること。
- 車で移動した場合の情報(距離、時間)を表示すること。
- ブラウザ内で表示が出来ること。
- 現在Salesforce内に蓄積されているデータを基にするものとし、今回の処理の為に新規にデータ入力はさせないこと。
- 追加費用を必要としないこと。
地図サービスの選定
ブラウザで表示出来る無料地図サービスはいくつか有りますのでメリットデメリットを確認します。
- Yahoo!マップ・・・住所情報の更新は比較的早いが、開発情報が少ない
- Bing!マップ・・・住所情報の更新、開発情報共に少ない
- Google マップ・・・住所情報の更新は比較的早いが、開発情報が多い
- NAVITIME・・・住所情報の更新は早い?が、開発系の利用が有料
今回は、比較的情報の多いGoogleマップにすることにします。
Googleマップのデメリット
多くの新築の場合、住所で検索しても場所の表示出来ません。
建て替えの場合や既に建っていて数年経過している場合は問題無く表示されることが多いのですが、新しい分譲地の場合等は、地図サービス側に住所登録が無い為、場所が表示されません。
建物が建つ数週間前には住所の確定はされる様ですが、地図サービスに反映されるのには数ヶ月~数年かかっているのが現状の様です。
(私が購入した家の場合、Googleマップに正しい位置が表示されるまで2年半かかりました。)
この為、施工が決まると家の”座標(緯度、経度)”の確認をさせて頂いております。
パソコンだけで無く、スマホでも”座標”の確認は可能です。
この為”座標”が入っている場合は座標で検索、”座標”が入って無い場合は住所を検索に用いることにします。
費用を掛けない為、簡単な処理でルート検索を実現する
URL処理だけで経路表示の方法を探ってみました。
「Google Maps Platform スタートガイド」を参考にURLで経路表示の方法を探ります。
URLで”origin”と”destination”を指定すると出来る様な事が書いて有ります。移動方法は”travelmode”で指定とも。
https://www.google.com/maps/dir/?api=1&origin=[出発地]&destination=[目的地]&travelmode=driving
⇒結果NGでした。何度か住所や”座標”を入れてみましたが、何故かエラーになりました。
普通にGoogleマップでルート検索を行った際のURL挙動を確認していたところ
https://www.google.com/maps/dir/[出発地]/[目的地]
だけでルート検索出来るっぽいことが分かりました。
date=で始まるデータオプション
URLの終わりに”data=”で車なのか公共交通機関なのか等の指定が出来るとの記事が有りました。
意味 | 値 |
公共交通機関 | /data=!4m2!4m1!3e3 |
車 | /data=!4m3!4m2!3e0!4e0 |
バス | /data=!4m4!4m3!2m2!4e2!5e0 |
高速道路も有料道路も使わない | /data=!4m4!4m3!2m2!2b1!1b1 |
今回は車を指定したいので
https://www.google.com/maps/dir/[出発地(座標)]/[目的地]/data=!4m3!4m2!3e0!4e0
とします。
?entry=ttu
毎回、URLの最後に”?entry=ttu”が付くので、一応付けておくことにします。
理由を調べましたが、分かりませんでした。
例えば・・・
会社から東京タワーへのルート検索をURLで行う場合
会社:35.50798150106948, 139.61127478468782
東京タワー:35.65870681700684, 139.7453578166013
URL:https://www.google.com/maps/dir/35.50798150106948, 139.61127478468782/35.65870681700684, 139.7453578166013/data=!4m2!4m1!3e0?entry=ttu
で以下の様に正常に?ルート表示出来ました。
URLでの処理が出来たので、Salesforceの処理を作成します。
カスタム項目の作成
目的地(座標)項目が入力されていない場合、目的地(住所)で検索する処理(カスタム項目)を作ります
カスタム項目を数式項目で作り、「目的地(座標)」欄が空欄なら「目的地(住所)」を採用する処理としました。
数式:データ型 数式 IF ( [ISBLANK(目的地(座標)]), [目的地(住所)], [目的地(座標)] )
カスタムリンクボタンを作成
URL構文を元に既存のデータを参照してルートを表示するボタン(リンク)を作成します。
ページレイアウトに配置
作成した「カスタムリンク」をページレイアウトに配置して完成。
これでクリック1回でルート確認が出来る様になりました。
※2024/3/10時点で動作しましたが、今後仕様の変更等で動作しなくなる可能性が有ります。
では、また次回。
フロアコーティング 「エコプロコート」
わんちゃん用フロアコーティング「愛犬の床」