Archive for the 'Google Earth' Category

2008/04/22 Safariの選択部分をGoogle Earthで開く

Webサイト上にGoogle Earthの位置情報ファイルkmlの内容が貼付けられているような場合に、それを選択しておくと、kmlファイルに書き出してGoogle Earthでオープンするというサンプルです。

earth1jpeg.jpeg

earth2.jpeg

スクリプト名:Safariの選択部分をGoogle Earthで開く
tell applicationSafari
  set a to do JavaScriptunescape(getSelection())in document 1
end tell

set a to a as Unicode text
if a = “” then return

set dPAth to path to desktop
set tmpOut to (dPAth as string) & “temp.kml
write_to_file(a, tmpOut, false) of me
saveInEncoding(a, tmpOut, “UTF8“) of meUTF8

do shell scriptsync

tell applicationGoogle Earth
  activate
  
open file tmpOut
end tell

指定の文字エンコーディングでファイル書き出し
on saveInEncoding(aText, aPath, aEncoding)
  
  
set a to aText as Unicode text
  
  
set aTmp to path to temporary items
  
  
set outFile to (aTmp as string) & “temporary_utf16be_text_fromAS.txt
  
write_to_file(a, outFile, false) of me
  
  
do shell scriptsync
  
  
set outPPath to quoted form of POSIX path of (outFile as alias)
  
set cnvPPath to quoted form of POSIX path of aPath
  
  
try
    do shell scripticonv -f UTF-16BE -t ” & aEncoding & “ ” & outPPath & “ > ” & cnvPPath
    –
do shell script “iconv -f UTF-16LE -t ” & aEncoding & ” ” & outPPath & ” > ” & cnvPPath
  end try
  
  
do shell scriptsync
  
  
try
    do shell scriptrm -f ” & outPPath
  end try
  
end saveInEncoding

ファイルの追記ルーチン「write_to_file」
追記データ、追記対象ファイル、boolean(trueで追記)
on write_to_file(this_data, target_file, append_data)
  try
    set the target_file to the target_file as text
    
set the open_target_file to open for access file target_file with write permission
    
if append_data is false then set eof of the open_target_file to 0
    
write this_data to the open_target_file starting at eof
    
close access the open_target_file
    
return true
  on error error_message
    try
      close access file target_file
    end try
    
return error_message
  end try
end write_to_file

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

2008/04/11 Google Earthでバージョン情報を取得

Google Earthのバージョンを取得します。なぜか、リスト形式で各桁が分解されて返ってきます。

スクリプト名:Google Earthでバージョン情報を取得
tell applicationGoogle Earth
  GetCurrentVersion
end tell
> {4, 2, 205, 5730}

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

2008/04/11 Google Earthでストリーミングダウンロードの進捗率を取得

Google Earthで、衛星写真のダウンロードの進捗率を取得します。Excelに住所を入れておき、それを取り出し、Google Earthに住所を渡して検索を実行。検索結果にピンでマークを作成して回るというAppleScriptを作ったときに使用しました。

スクリプト名:Google Earthでストリーミングダウンロードの進捗率を取得
tell applicationGoogle Earth
  GetStreamingProgress
end tell

> 100

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

2008/04/11 Google Earthで現在表示中の画面のスクリーンショットを撮るv1

Google Earthで現在表示中の内容のスクリーンショットを撮ります。ただし、画面表示とは異なり、撮影された画像はグレースケールのJPEGです。その後の改良により、Google Earthの機能をまったくあてにせずGoogle Earthのカラー画像をSaveできるようになりました。カラーで保存できるようにするのに1時間かからなかった記憶があります。そんなわけで、こうした制限は無意味ではないかと思うのですがいかがなものでしょうか?

googleearth1.jpg

googleearth2.jpg

スクリプト名:Google Earthで現在表示中の画面のスクリーンショットを撮るv1
set dtPath to path to desktop
set dtPath to dtPath as string
set dtPath to dtPath as Unicode text
set newFile to POSIX path of (dtPath & “screenshot2.jpg“) –quoted formは指定してはダメ!

tell applicationGoogle Earth
  set aRes to SaveScreenShot newFile
end tell

> 撮影成功なら true が返る

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