Composant Delphi Google Maps / CloudMade / OpenMapQuest / LeafletBB

Layers

Vous êtes ici :Overlays

En utilisant l'api Google vous avez aussi accès à BicyclingLayer, TrafficLayer, FusionTablesLayer, KmlLayer et WeatherLayer

Sous l'api CloudMade seul KmlLayer est fonctionnel

22

BicyclingLayer

Affiche les pistes cyclables

// map component ECMap

// show bicyclinglayer
map.BicyclingLayer := true;

Fig. 32 BicyclingLayer

Pour le moment le layer n'est pas très développé surtout en europe, vous pouvez le remplacer par une carte OpenMapStreet CycleMap qui à l'avantage de fonctionner sous les 2 apis.

// map component ECMap

// change map type to CycleMap
map.MapTypeId := mtCYCLEMAP;

Fig. 33 OpenMapStreet CycleMap

TrafficLayer

Affiche l'état du traffic, ne semble pas activé sur toutes les régions

// map component ECMap

// show Trafficlayer
map.TrafficLayer := true;

Fig. 34 TrafficLayer

FusionTablesLayer

Affiche des données depuis une table Google Fusion

Vous gérer vos layers au travers de la propriété FusionTablesLayers de type TECMapFusionTablesLayers

// map component ECMap

// add un fusiontableslayer
id := map.FusionTablesLayers.Add('Geocodable address','139529','','');
map.FusionTablesLayers[id].visible := true;

TECMapFusionTablesLayers

Voir la documentation de google sur FusionTablesLayer
function Add(const Column,Id,Style,Clause:string):integer;

Ajoute un layer et retourne son index

Column est la colonne de la table, correspond à select dans la doc google

Id est l'identifiant de la table, correspond à from dans la doc google

Style est le style applicable au layer

Clause est la requète SQL qui vous permet de filtrer vos données, correspond à where dans la doc google

procedure Clear;
Efface l'ensemble des layers
function Count:integer;
Retourne le nombre de layers
procedure Delete(index:integer);
Supprime le layer dont on passe l'index
property FusionTablesLayer[index:integer]: TECMapFusionTablesLayer
Tableau permettant l'accès aux layers, c'est la propriété par défaut donc vous pouvez y accéder directement par map.FusionTablesLayers[index] au lieu de map.FusionTablesLayers.FusionTablesLayer[index]
property ToTxt: string ;
Propriété en lecture/écriture qui donne accès à la liste des FusionTablesLayer dans un format texte.

En écriture il s'agit d'un ajout et non d'un remplacement, si vous ne souhaitez pas conserver les anciennes valeurs faites un Clear avant l'ajout

33

TECMapFusionTablesLayer

Classe contrôlant un FusionTablesLayer

procedure update;
Mise à jour des propriétés, vous devez y faire appel pour répercuter les modifications des propriétés
property TableId : string

identifiant de la table, correspond à from dans la doc google

property LocationColumn : string

colonne de la table, correspond à select dans la doc google

property Clause : string

Requète SQL qui vous permet de filtrer vos données, correspond à where dans la doc google

property Style : string

style applicable au layer

property Heat : boolean

correspond à heatmap dans la doc google

property SuppressInfoWindow : boolean

Permet d'activer ou non l'affichage d'une infoWindow lors d'un clic sur un élément du layer

property Visible : boolean

Affiche ou non le layer

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

OnFusionTablesLayerClick

TECMap dispose d'un évènement pour intercepter un click sur un élément du layer.

procedure OnFusionTablesLayerClick (sender: TObject;const idLayer:integer;const htmlInfoWindow:string;dLatitude,dLongitude:double);
idLayer le numéro du layer dans la liste FusionTablesLayers
htmlInfoWindow une chaîne contenant le contenu Html de l'info bulle de l'élément, s'il existe
dLatitude,dLongitude coordonnées du point clické

KmlLayer

Vous pouvez importer des fichiers Kml/Kmz dans vos cartes et les afficher en surcouche.

Les fichiers Kmz ne sont pas supportés par CloudMade, par contre il supporte le format GeoXml (extension .xml)

14
Les layers Kml disposent des propriétes et méthodes
Id : integer
Index du layer, accessible en lecture seule
Url : string
Url du fichier kml, accessible en lecture seule
Visible : boolean
Visibilité du layer, accessible en lecture/écriture
ToTxt : string
propriété en lecture/écriture permettant d'exporter/importer au format texte l'ensemble des éléments
procedure Show;
Affiche la zone par défaut du layer si elle a été spécifiée

OnKmlLayerClick

TECMap dispose d'un évènement pour intercepter un click sur un élément du layer.

CloudMade ne répond pas à cet évènement

15
procedure OnKmlLayerClick (sender: TObject;const idKmlLayer:integer;const htmlDescription,htmlInfoWindow:string;dLatitude,dLongitude:double);
idKmlLayer le numéro du layer dans la liste KmlLayers
htmlDescription une chaîne contenant le contenu Html de l'élèment, s'il existe
htmlInfoWindow une chaîne contenant le contenu Html de l'info bulle de l'élément, s'il existe
dLatitude,dLongitude coordonnées du point clické

// map component ECMap
// add KML file M1+ Real-Time Earthquakes, Past 7 Days
id := map.KmlLayers.add(
'http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-age.kmz'
);
// show all
map.KmlLayers[id].show;

TECMap permet d'exporter la majorité de ses données, y compris les layers kml, au format KML.

34

// map component ECMap

// export map data to kml string
kml_string := map.ToKml;

WeatherLayer

// map component ECMap

map.WeatherLayer := true;

Fig. 35 WeatherLayer

OnWeatherLayerClick

TECMap dispose d'un évènement pour intercepter un click sur un élément du layer.

procedure OnWeatherLayerClick (sender: TObject;const htmlInfoWindow:string;dLatitude,dLongitude:double);
htmlInfoWindow une chaîne contenant le contenu Html de l'info bulle de l'élément, s'il existe
dLatitude,dLongitude coordonnées du point clické

DemoLayer

Le programme DemoLayer vous permet de voir comment utiliser ces différents layers ainsi que Panoramio qui est lui aussi une surcouche

Fig. 36 DemoLayer
Fig. 36 DemoLayer
Aller à la page
© 2012 ESCOT-SEP Christophe - Réalisé avec Help&Web
Site Meter