FileMakerでAppleMapを使うにはどうしたらいいかという「さぽらぼ」で得たひらめきをサンプルにしてみました。こちらの記事からの続きです
##リファレンス
Apple URL Scheme Reference
以下、これを元に作ってみたカスタムApp製作工程です
#作成サンプル:AppleMapを使う
AppleのMapをFileMakerに埋め込む(=Webビューアに入れる)のはハードル高そうなのですが、**「餅は餅屋、Mapの機能はMapでやってもらえば」**という参加者の方のアドバイスもあり、以下のようなカスタムAppを作ってみました
##基本レイアウトはこんな感じ
各項目を設定して、いらすとやさんのボタンをクリックすると、AppleMapが開いて結果を表示してくれるようにしようと思います
##フィールド名はこんな感じ
上から5つのフィールドはFM17が勝手に作ってくれるので、実際に追加したのは下の4フィールドだけです
# -------------------------------------------------
# AppleMapを呼び出すスクリプト
# -------------------------------------------------
変数を設定 [ $saddress ; 値: MAP::出発地点 ]
変数を設定 [ $daddress ; 値: MAP::目標地点 ]
変数を設定 [ $maptype ; 値: Case ( MAP::MapType = "サテライト" ; "k"; MAP::MapType = "ハイブリッド" ; "h"; MAP::MapType = "交通機関" ; "r"; "m") ]
変数を設定 [ $transittype ; 値: Case ( MAP::交通タイプ ="公共交通機関" ; "r"; MAP::交通タイプ ="徒歩" ; "w"; "d" ) ]
変数を設定 [ $query ; 値: "saddr=" & $saddress & "&daddr=" & $daddress & "&t=" & $maptype & "&dirflg=" & $transittype ]
#
URL を開く [ ダイアログあり: オフ ; "http://maps.apple.com/?" & $query ]
1 出発地点
2 目標地点
3 マップのタイプ(ラジオボタンの結果をURLスキーマのValueに変換)
4 交通手段(ラジオボタンの結果をURLスキーマのValueに変換)
の4つの変数を得て、URLスキーマhttp://maps.apple.com/?
にくっつけます
##実行結果
Mapアプリが起動して、経路を表示してくれました
・Windowsで実行するとどうなるか試してみたのですが、その場合は規定のブラウザを呼び出した上でGoogleMapで表示するようです。
##iOSで開けない?
このファイルをiOS上で実行した時に、URLが開けない問題が発生中
Version16だと開くことができます
17特有のバグと考えて、以下のように回避策をとりあえず設定しています
If [ PatternCount ( Get ( アプリケーションバージョン ) ; 17 ) and Get ( システムプラットフォーム )=3]
# Version17では表示できない症状を確認したため、一時的にGoogleMapに避難
変数を設定 [ $directionmode ; 値: Case ( $transittype="w" ; "walking" ; $transittype="r" ; "transit" ; "driving") ]
URL を開く [ ダイアログあり: オフ ; "comgooglemapsurl://maps.google.com/maps?saddr=" & $saddress & "&daddr=" & $daddress & "&directionmode=" & $directionmode ]
Else
URL を開く [ ダイアログあり: オン ; "https://maps.apple.com/?" & $query ]
End If
##SpecialThanks〜年末の挨拶に代えて〜
さぽらぼで色々教えていただいたp388cellさん、アドベントカレンダーを起案いただいたtyumaさんほか一緒に勉強している皆様、場所と楽しい時間を提供いただいている株式会社サポータスの佐々木さん・杉浦さんほか会社の皆様のおかげで、FileMakerで何かを作るどころか記事を書くことができるようになりました。
今年も本当にありがとうございました。来年もよろしくお願いいたします