12/23 Google Maps API Web ServicesをAppleScriptから呼び出す「Location Helper」
GoogleのMaps API Web ServicesにAppleScriptから簡単にアクセスできるようにするツール「Location Helper for AppleScript」がMacApp Storeからフリーで配布されています。

同氏はほかに「JSON Helper」という同様のツールもMac AppStoreで同様にフリー配布しており、こちらも注目していました(Location HelperはJSON Helperの機能を含んでいます)。
JSON Helper/Location Helperはともにバックグラウンドで稼働するGUIなしアプリケーションであり、起動してもDockには起動表示は出ません(Mac AppStoreの評価コメントに「起動しない」といったものがありますが、完全な勘違いです)。アクティビティモニタで見ると、Location Helperが起動していることが確認できます。
それでは、Location HelperのGoogle Maps API関連の機能を実際にAppleScriptから呼び出してみましょう。
実行時には、インターネットへの接続が必要となります。
| スクリプト名:現在地の緯度、経度を求める |
| tell application “Location Helper” get location coordinates end tell –> {35.xxxxxxxxxxxxx, 139.xxxxxxxxxxxx} |
現在位置については、初回起動時に勝手に取得してよいかダイアログが表示されます。

| スクリプト名:現在地の海抜を求める |
| tell application “Location Helper” get location altitude end tell –> -1 |
-1が返ってくる場合には海抜の情報が取得できていないケース、とAppleScript用語辞書に書かれています。
| スクリプト名:現在地の情報をレコード形式で取得 |
| tell application “Location Helper” get location record end tell –> {course:-1.0, v_accuracy:-1.0, speed:0.0, timestamp:date “2011年12月23日金曜日 16:30:08″, coordinates:{35.xxxxxxxxxxxxx, 139.xxxxxxxxxxxxx}, lat:35.xxxxxx, lng:139.xxxxxxx, h_accuracy:127.0, altitude:-1} |
| スクリプト名:現在地の情報をテキスト形式で取得 |
| tell application “Location Helper” get location string end tell –> “< +35.xxxx, +139.xxxx> +/- 127.00m (speed 0.00 mps / course -1.00) @ 2011-12-23 16:30:08 +0900″ |
| スクリプト名:現在地の緯度・経度から住所情報を取得 |
| tell application “Location Helper” reverse geocode location end tell |
| スクリプト名:指定住所の緯度・経度情報を取得 |
| tell application “Location Helper” geocode address “東京都新宿区西新宿三丁目20-2″ –アップルジャパン合同会社の所在地 end tell –> {results:{{formatted_address:”日本, 東京都新宿区西新宿3丁目20−2”, address_components:{{short_name:”2”, long_name:”2”, types:{”sublocality_level_4″, “sublocality”, “political”}}, {short_name:”20”, long_name:”20”, types:{”sublocality_level_3″, “sublocality”, “political”}}, {short_name:”3丁目”, long_name:”3丁目”, types:{”sublocality_level_2″, “sublocality”, “political”}}, {short_name:”西新宿”, long_name:”西新宿”, types:{”sublocality_level_1″, “sublocality”, “political”}}, {short_name:”新宿区”, long_name:”新宿区”, types:{”locality”, “political”}}, {short_name:”東京都”, long_name:”東京都”, types:{”administrative_area_level_1″, “political”}}, {short_name:”JP”, long_name:”日本”, types:{”country”, “political”}}}, geometry:{viewport:{northeast:{lat:35.684300980292, lng:139.688203280291}, southwest:{lat:35.681603019708, lng:139.685505319709}}, location:{lat:35.682952, lng:139.6868543}, location_type:”APPROXIMATE”}, types:{”sublocality_level_4″, “sublocality”, “political”}}}, status:”OK”} |
| スクリプト名:現在地と指定の緯度・経度との距離をメートルで返す |
| tell application “Location Helper” get distance from coordinates {35.739, 139.63} end tell –> 911.86243144354 |
JSON Helper / Location Helperは非常に有用なツールですが、AppleScriptでGUIつきアプリケーションを作る環境AppleScriptObjCで、プログラムと一緒にLocation Helperを配布するわけにもいかないので、同等の機能を自前で実装する必要が出てくる感じでしょうか。Location Helperとまで行かないまでも、JSON Helperの機能については、別途実装したいところです。
