MavericksのマップをURLスキームから利用する
iOSのマップをそのままMacにもってきたMavericksのマップ。
それならばiOSのマップと同じようにMavericksのマップをURLスキームから利用できるはずだと思いたち試してみました。
URLスキームから起動できれば、LaunchBarやAlfredなどのランチャーからマップを利用でき便利です。
まずiOSのURLスキームは佐長 Blogさんを参考にしました。
http://maps.apple.com/?<パラメータ>
というような形式でマップを起動できる模様。
パラメータ | 内容 |
---|---|
q | 検索キーワード |
saddr | 経路検索の出発地 |
daddr | 経路検索の目的地 |
東京駅を検索したいなら
http://maps.apple.com/?q=東京駅
という感じ。
上記URLをSafariのアドレスバーに貼り付けるかターミナルのopenコマンドの後に貼り付けて実行すると
あっさり成功。
LaunchBarから利用するには
https://maps.apple.com/?q=*
Alfredから利用するには
https://maps.apple.com/?q={query}
というURLを検索テンプレートに登録します。
検索した地名の近くの施設を探したい場合はスペースで区切って施設名を入れるだけ。
マップが起動していない状態でいきなり「地名 施設名」検索をしても表示してくれないみたいです。
経路検索を利用する場合は
http://maps.apple.com/?saddr出発地=&daddr=目的地
という形式ですが、AlfredやLaunchBarなどのランチャーから快適に利用するには少し工夫が必要です。
ダイアログやLaunchBarから利用したい場合には以下のAppleScriptを「AppleScript エディタ」で開きファイルとして保存して利用。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on run --for Dialog | |
display dialog "出発地と目的地をスペースで区切って入力" default answer "" buttons {"OK"} default button 1 | |
set theText to text returned of result | |
openMaps(theText) | |
end run | |
on handle_string(theText) --for LaunchBar | |
openMaps(theText) | |
end handle_string | |
on openMaps(theText) | |
set theList to makeList(theText, " ") | |
set saddrText to item 1 of theList | |
set daddrText to item 2 of theList | |
do shell script "open 'http://maps.apple.com/?saddr=" & saddrText & "&daddr=" & daddrText & "'" | |
end openMaps | |
on makeList(theText, theDelimiter) | |
set tmp to AppleScript's text item delimiters | |
set AppleScript's text item delimiters to theDelimiter | |
set theList to every text item of theText | |
set AppleScript's text item delimiters to tmp | |
return theList | |
end makeList |
Alfred 2から利用したい場合はWorkflowを作成してBox.comにアップロードしましたので、ダウンロードしてインポートして利用してください。