La propriété EarthView de type TECMapEarthView vous permet de gérer l'affichage 3D Google Earth ou de Cesium
Google Earth n'est disponible qu'avec l'api Google
26Le plugin Google Earth sera abandonnée par Google en décembre 2015
27La suite TECMap vous propose le composant indépendant TECCesiumMap pour gérer vos vues 3D, ce composant est aussi intégré dans EarthView pour remplacer à terme Google Earth.
L'intégration de Cesium dans EarthView est partielle, le logo indique la compatibilité avec Cesium
Il est recommandé d'utiliser directement la propriété Cesium qui donne un accès complet au composant gérant Cesium.
3TECMapEarthView
Elle donne accés aux propriétés et méthodes suivantes
Efface les données
Les données ne sont effacées que dans la vue 3D elles sont toujours disponible dans la vue 2D standard
16Activer/Désactiver un layer
Vous avez le choix parmi
- LAYER_BORDERS
- LAYER_BUILDINGS
- LAYER_BUILDINGS_LOW_RESOLUTION
- LAYER_BUILDINGS_LOW_RESOLUTION.
- LAYER_ROADS
- LAYER_TERRAIN
- LAYER_TREES
Sous Cesium seul LAYER_TERRAIN est fonctionnel
17LAYER_TERRAIN est activé par défaut
//
Delphi map component ECMap
// active LAYER_BUILDINGS
and LAYER_TREES
map.EarthView.EnableLayer('LAYER_BUILDINGS',true);
map.EarthView.EnableLayer('LAYER_TREES',true);
Chargement d'un fichier Kml/Kmz distant
UrlKmlKmz url du fichier à importer
Les données sont ajoutées aux données déjà présentes, faites un Clear avant si vous souhaitez un remplacement total
50Propriété en lecture/écriture pour déterminer son altitude
Propriété en lecture/écriture pour fixer la manière dont est calculée l'altitude
Vous avec le choix entre
- amAbsolute
- amRelativeToGround
- amClampToGround
- amRelativeToSea
- amClampToSea
Propriété en lecture/écriture pour fixer la vitesse de déplacement, de 0 à 5.0
Utilisez 6.0 pour un téléportage immédiat
51property NavigationControlVisibility : TNavigationControlVisibility
Propriété en lecture/écriture pour afficher ou non les contrôles, vous avez le choix entre ncvShow,ncvHide et ncvAuto
//
Delphi map component ECMap
map.EarthView.NavigationControlVisibility :=
nvcAuto;
Propriété en lecture/écriture qui permet l'import/export au format Kml
TECMap dispose de la fonction toKml pour exporter la quasi totalité des overlays au format Kml
//
Delphi map component ECMap
// import overlays
(markers, rectangles,
circles,...routes)
map.EarthView.toKml := map.toKml;
Sous Google Earth les donnée Kml ne sont pas prises en compte
18Propriété en lecture/écriture qui détermine le contenu de la marque d'indice id
La chaîne est au format Kml, du genre
<Placemark><name>Placemark from KML string</name>
<Point>
<coordinates>-122.448425,37.802907,0</coordinates>
</Point>
</Placemark>
Liste des modèles de type TECMapEarthModel
Un modèle est défini par la balise Kml <Model>Liste des modèles 3D de type TECCesiumShapeModel
Pour que les modifications sur les propriétés Altitude, Heading, Range, Roll et Tilt soient visibles vous devez déclencher un appel à LookAt ou à Camera
19TECMapEarthModels
Cette classe possède les méthodes et propriétés
//
Delphi map component ECMap
// load 3d
model
map.EarthView.models.LoadKml('http://earth-api-samples.googlecode.com/svn/trunk/demos/drive-simulator/smart.kmz');
Si des modèles sont présent dans le Kml chargé par TECMapEarthView.ToKml ou par TECMapEarthView.LoadKml ils seront aussi accessible dans la liste Models
52Il s'agit de la propriété ID de la balise Model
53Tableau permettant l'accès aux modèles, c'est la propriété par défaut donc vous pouvez y accéder directement par map.EarthView.Models[index] au lieu de map.EarthView.Models.Model[index]
TECMapEarthModel
Classe gérant un modèle 3D, elle possèdent les méthodes et propriétés
Propriété en lecture qui donne l'identifiant du modèle
Il s'agit de la propriété ID de la balise Model
54Visite guidée ( Tour )
Google Earth vous permet de jouer des visites guidées, nommées tour ( voir la documentation de google earth api )
EarthView vous offre la possibilité de les gérer de manière simple.
property Tour : stringPropriété en lecture/écriture pour charger un tour
- Vous pouvez charger un fichier kml/kmz depuis internet ou en local
- Vous pouvez aussi directement passer une chaine contenant les données kml
// load kml tour
map.EarthView.Tour := 'http://www.my.com/mytour.kml';
map.EarthView.Tour := 'c:\mytour.kml';
map.EarthView.Tour := '<?xml version="1.0"
encoding="UTF-8"?>...<gx:Tour>...';
L'événement OnLoadTour est déclenché lorsque le tour est chargé et disponible
55procedure PauseTour;
Évènements
En plus des évenements ci-dessous vous avez aussi accès à OnMapClick, OnMapDblClick, OnMouseMove, OnOverlayMouseDown, OnOverlayMouseUp et OnOverlayMouseOut
57Déclenché par un click sur une marque
index est l'indice de la marque dans la liste PlaceMark
KmlString le contenu de la marque au format Kml, du genre
<Placemark><name>Placemark from KML string</name>
<Point>
<coordinates>-122.448425,37.802907,0</coordinates>
</Point>
</Placemark>
Démonstrations
Demo3D vous montre en particulier comment déplacer un modèle 3D en suivant un trajet précis.
Le programme DemoOverlay vous montre comment transférer des données vers une vue 3D