Archive for the 'Location Helper' Category

12/23 Google Maps API Web ServicesをAppleScriptから呼び出す「Location Helper」

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

作者は、David Blishen氏

jhelp.jpg

同氏はほかに「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}

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

現在位置については、初回起動時に勝手に取得してよいかダイアログが表示されます。

loc1.jpeg

スクリプト名:現在地の海抜を求める
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の機能については、別途実装したいところです。