Composant Delphi Google Maps / CloudMade / OpenMapQuest / LeafletBB

EarthView

La propriété EarthView de type TECMapEarthView vous permet de gérer l'affichage 3D Google Earth

Non disponible sous CloudMade

24

TECMapEarthView

Elle donne accés aux propriétés et méthodes suivantes

procedure Clear;
Efface les données Kml
procedure EnableLayer(const sLayer:string;const bShow:boolean)

Activer/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

LAYER_TERRAIN est activé par défaut

// map component ECMap

// active LAYER_BUILDINGS and LAYER_TREES
map.EarthView.EnableLayer('LAYER_BUILDINGS',true);
map.EarthView.EnableLayer('LAYER_TREES',true);

procedure Camera(const dLatitude,dLongitude:double)
Positionne la caméra en dLatitude,dLongitude et affiche la vue en accord avec les propriétés Altitude,Roll, Tilt et Heading
procedure LookAt(const dLatitude,dLongitude:double)
Regarde le point situé en dLatitude,dLongitude et affiche la vue en accord avec les propriétés Altitude,Range, Tilt et Heading
function getGroundAltitude(const dLatitude,dLongitude:double):double;
Retourne l'altitude du point situé en dLatitude,dLongitude
procedure LoadKml(const UrlKmlKmz:string);

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

36
procedure PlacemarkLatLngAlt(const id:integer;const Lat,Lng,Alt:double);
Positioner la marque d'indice id en Latitude,Longitude et Altitude
property Altitude : double

Propriété en lecture/écriture pour déterminer son altitude

property AltitudeMode: TAltitudeMode

Propriété en lecture/écriture pour fixer la manière dont est calculer l'altitude

Vous avec le choix entre

  • amAbsolute
  • amRelativeToGround
  • amClampToGround
  • amRelativeToSea
  • amClampToSea
property FlyToSpeed : double

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

37
property Loaded : boolean
Propriété en lecture seule pour déterminé si le plugin a bien été chargé
property Latitude : double
Propriété en lecture/écriture pour déterminer la latitude
property Longitude : double
Propriété en lecture/écriture pour déterminer la longitude
property Heading : double
Propriété en lecture/écriture pour déterminer l'orientation par rapport au Nord (de 0° à 360°)
property Tilt : double
Propriété en lecture/écriture pour déterminer l'angle de la vue (de 0° à 90° pour LookAt et de 0° à 180° pour Camera)
property Range : double
Propriété en lecture/écriture pour déterminer la distance par rapport au point observé (non utilisé par Camera)
property Ready : boolean
Propriété en lecture seule pour déterminé le moment où le plugin a fini son rendu écran, correspond à l'évènement OnEarthViewFrameEnd
property Visible : boolean
Propriété en lecture/écriture pour activer/désactiver la vue 3D
property Atmosphere : boolean
Propriété en lecture/écriture pour afficher ou non l'atmosphère
property Grid : boolean
Propriété en lecture/écriture pour afficher ou non les lignes de latitudes et longitudes sur le globe
property MouseNavigationEnabled : boolean
Propriété en lecture/écriture pour activer ou non le déplacement à la souris

property NavigationControlVisibility : TNavigationControlVisibility

Propriété en lecture/écriture pour afficher ou non les contrôles, vous avez le choix entre ncvShow,ncvHide et ncvAuto

// map component ECMap

map.EarthView.NavigationControlVisibility := nvcAuto;

property StatusBar : boolean
Propriété en lecture/écriture pour afficher ou non la barre d'information
property ScaleLegend : boolean
Propriété en lecture/écriture pour afficher ou non l'échelle
property Sun : boolean
Propriété en lecture/écriture pour afficher ou non le soleil
property OverviewMap : boolean
Propriété en lecture/écriture pour afficher ou non une mini carte du monde
property TerrainExaggeration : double
Propriété en lecture/écriture qui est un facteur d'accroissement de l'altitude de 1.0 à 3.0
property ToKml : string;

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

// map component ECMap

// import overlays (markers, rectangles, circles,...routes)
map.EarthView.toKml := map.toKml;

property ToTxt : string;
Propriété en lecture/écriture qui donne accès aux propriétés dans un format texte.

Les donnée Kml ne sont pas prises en compte

16
property PlaceMark[const index:integer]: string

Proprié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>
property PlacemarkCount : integer
Retourne le nombre de marques
property Models : TECMapEarthModels

Liste des modèles de type TECMapEarthModel

Un modèle est défini par la balise Kml <Model>
property StreamPercent : integer
Propriété en lecture qui indique le pourcentage de chargement de la vue
property ApiVersion : string
Retourne la version de l'api Google Earth
property PluginVersion
Retourne le numéro de version du plugin 3D

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

17

TECMapEarthModels

Cette classe possède les méthodes et propriétés

procedure LoadKml(const filename:string);
charger un fichier Kml/Kmz définissant un modèle 3D, déclenche l'évènement OnEarthViewUpdateModels

// 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

38
function IndexOf(const idModel:string):integer;
Retourne l'indice du modèle dont on passe l'identifiant

Il s'agit de la propriété ID de la balise Model

39
procedure Delete(const index:integer);
Supprime le modèle index
function Count:integer;
Retourne le nombre de modèle 3D
procedure Clear;
Efface tous les modèles 3D
property Model[Index:integer]:TECMapEarthModel

Tableau 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

procedure setLatLngAlt(const Lat,Lng,Alt:double);
Position le modèle en latitude, longitude, altitude
procedure LookAt;
Regarder le modèle
property Id : string ;

Propriété en lecture qui donne l'identifiant du modèle

Il s'agit de la propriété ID de la balise Model

40
property Index : integer
Indice du modèle dans la liste Models
property Latitude : double
Propriété en lecture/écriture pour déterminer la latitude
property Longitude : double
Propriété en lecture/écriture pour déterminer la longitude
property Heading : double
Propriété en lecture/écriture pour déterminer l'orientation par rapport au Nord (de 0° à 360°)
property Tilt : double
Propriété en lecture/écriture pour déterminer l'angle de la vue (de 0° à 90°)
property Range : double
Propriété en lecture/écriture pour déterminer la distance par rapport au point observé )
property Roll : double
Propriété en lecture/écriture pour déterminer la rotation du modèle
property Altitude : double
Propriété en lecture/écriture pour déterminer l'altitude du modèle

Évènements

property OnEarthViewInit : TNotifyEvent;
Déclenché quand le plugin est chargé, cela se produit lorsque vous basculez TECMapEarthView.Visible à true
property OnEarthViewChange : TNotifyEvent;
Déclenché lorsque la vue change
property OnEarthViewFrameEnd : TNotifyEvent;
Déclenché lorsque le rendu 3D est terminé, c'est le bon endroit pour déplacer les modèles 3D pour avoir une animation fluide
property OnEarthViewUpdateModels : TNotifyEvent;
Déclenché par l'ajout d'un modèle
property OnEarthViewUpdatePlacemarks : TNotifyEvent;
Déclenché par l'ajout d'une marque
property OnEarthViewClickPlacemark (sender: TObject;const index:integer;const KmlString:string)

Dé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.

Fig. 39 EarthView dans Demo3D
Fig. 39 EarthView dans Demo3D

Le programme DemoOverlay vous montre comment transférer des données vers une vue 3D

Fig. 40 DemoOverlay
Fig. 40 DemoOverlay
Fig. 41 Importation des overlays au format KML
Fig. 41 Importation des overlays au format KML
Aller à la page
© 2012 ESCOT-SEP Christophe - Réalisé avec Help&Web
Site Meter