Dominer le monde avec Tcl, Tcom et Google Earth

 

Bon le titre de cette page est quelque peu mégalomaniaque ;-)

GS En fait, il s'agit simplement de quelques exemples qui montrent comment utiliser l'API COM de Google Earth avec Tcl. Cette dernière est décrite ici [1].

Ci dessous les exemples testés à la console:

Instancier un objet Google Earth:

 package require tcom
 set application [::tcom::ref createobject "GoogleEarth.ApplicationGE"]

Savoir si Google Earth est initialisé (1) ou non (0):

 $application IsInitialized

Obtenir les informations sur la version:

 set apptype [$application VersionAppType]
 set vbuild [$application VersionBuild]
 set vmajor [$application versionMajor]
 set vminor [$application versionMinor]

Effectuer un survol selon une trajectoire donnée:

 # SetCameraParams <latitude> <longitude> <altitude> <altMode> <range> <tilt> <azimuth> <speed>
 #
 # <latitude>  Latitude en degrés. Entre -90 et 90.
 # <longitude> Longitude in degrés. Entre -180 et 180.
 # <altitude>  Altitude en mètres
 # <altMode>   Le mode d'altitude qui défini le point de référence de celle-ci (1=au sol, 2=absolu)
 # <range>     Distance entre le point focal et la caméra en mètres
 #             If !=0 camera will move backward from range meters along the camera axis
 # <tilt>      Angle d'inclinaison en degrés. Entre 0 et 90. Vers l'horizon=90, vers le centre de la Terre=0
 # <azimuth>   Azimuth en degrés. Vers le Nord=0, Est=90, Sud=180, Ouest=270
 # <speed>     Vitesse. Doit être >= 0, Si >=5.0 mode téléportation

 $application SetCameraParams 45 1 1000 1 1 60 345 1
 $application SetCameraParams 46 1 1000 1 1 60 345 1
 $application SetCameraParams 47 1 1000 1 1 60 345 1
 $application SetCameraParams 48 1 1000 1 1 60 345 1
 $application SetCameraParams 48 -4 1000 1 1 60 345 1
 $application SetCameraParams 48 -4 3000 1 1 60 300 1

Récupérer les informations de la caméra:

 set cam [$application GetCamera 1]
 set fplat [$cam FocusPointLatitude]
 set fplong [$cam FocusPointLongitude]
 set fpalt [$cam FocusPointAltitude]
 set fpaltm [$cam FocusPointAltitudeMode]
 set range [$cam Range]
 set tilt [$cam Tilt]
 set azm  [$cam Azimuth]

Une copie d'écran noir et blanc:

 # SaveScreenShot <file> <quality>
 # <quality> Facteur de qualité de l'image en 0 et 100. 0 étant la qualité la plus basse.

 $application SaveScreenShot C:/tmp/ge01.jpg 40

Rechercher un lieu:

 set sc [$application SearchController]
 $sc Search "Paris"

Ouvrir un fichier KML en local ou sur Internet:

 $application OpenKmlFile C:/tmp/KML_samples.kml 1
 $application OpenKmlFile http://code.google.com/apis/kml/documentation/KML_Samples.kml 1

Voir aussi l'article de Steve Landers et David Roseman à la Conférence Annuelle Tcl 2010 : Augmented Reality, Google Earth and Tcl/Tk [2]