Composant Delphi Google Maps / CloudMade / OpenMapQuest / LeafletBB

Type de carte

API

TECMap vous permet d'utiliser soit l'API Google Maps soit l'API CloudMade soit l'API OpenMapQuest soit l'API Leaflet pour afficher vos cartes, vous effectuer le basculement en paramètrant la propriété MapAPI à apiGoogle , apiCloudMade , apiOpenMapQuest ou apiLeaflet

La propriété SSL vous permet d'utiliser une connexion sécurisé, pour l'instant seule l'api Google offre cette fonctionnalité.

La propriété ApiVersion de type string vous permet d'indiquer la version de l'api que vous souhaitez employer, cela ne fonctionne que pour Google, si vous n'en indiquez pas c'est la dernière version en date qui sera utilisée.

// map component ECMap

// set version 3.3 for google api
map.apiVersion := '3.3';

Cela peut-être utile en cas de bug de certaines versions.

Le changement d'API provoque les évènements OnBeforeChangeMapApi et OnAfterChangeMapApi , le premier à lieu juste avant le changement effectif, le second juste après.

Lorsque la carte est prête l'évènement OnLoad est déclenché, vous pouvez aussi vous brancher sur OnBeforeLoad si vous souhaitez modifier l'url de connexion à l'api et rajouter du code pour connecter des bibliothèques javascript

// map component ECMap

procedure TFDemoRoute.mapBeforeLoad(sender: TObject; var sUrlMapApi,
sHtmlHead: string);
begin
// you cant change sUrlMapApi and sHtmlHead
// exemple connexion jquery
sHtmlHead := sHtmlHead + '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>';
end;

Vous pouvez recharger une carte et son contenu en appelant la fonction Reload, utile pour forcer une libération de mémoire, les évènements OnBeforeReload et OnAfterReload sont disponibles.

Vous n'avez pas à vous préoccuper de sauvegarder le contenu de la carte, il sera intégralement rechargé à l'exception du résultat d'une recherche de lieux.

Le changement des propriétés MapApi, ApiVersion, SSL déclenche un rechargement.

3

StreetView ayant des fuites de mémoire, en attendant que google les corrige, un appel à reLoad est déclenché automatiquement toute les 1000 vues.

TECMap se cale au plus près des apis, n'hésitez pas à lire leur documentation respective.

En plus de la licence d'utilisation que je vous invite à lire, les principales différences sont l'absence de SSL, de vue satellite, de vue 3D, de Panoramio , de DistanceMatrix et de StreetView dans l'api CloudMade et OpenMapQuest.

Les différences ne déclenchent pas d'erreur dans le composant TECMap, l'utilisation d'une propriété non supportée n'a simplement pas d'effet, il est possible que suivant l'évolution future des apis les manques soient corrigés.

Vous pouvez changer d'api à tout moment sans perte de données, à l'exception des résultats d'une recherche de lieux.

4

Type de carte

OpenMapQuest ne supporte que la carte classique.

Fig. 10 OpenMapQuest
Fig. 10 OpenMapQuest

Avec CloudMade vous avez la carte routière classique.

Fig. 11 Carte CloudMade
Fig. 11 Carte CloudMade

Vous avez 4 autres cartes OpenMapStreet, Mapnik, Osmarender, CycleMap et MapQuest

Fig. 12 Carte OpenMapStreet Mapnik
Fig. 12 Carte OpenMapStreet Mapnik
Fig. 13 Carte OpenMapStreet A render
Fig. 13 Carte OpenMapStreet A render
Fig. 14 OpenMapStreet CycleMap
Fig. 14 OpenMapStreet CycleMap
Fig. 15 OpenMapStreet MapQuest
Fig. 15 OpenMapStreet MapQuest

Avec l'api Google vous avez la carte classique, la vue satellite avec ou sans les légendes, une vue relief, OpenMapStreet Mapnik, OpenMapStreet A Render, CycleMap et MapQuest

// map component ECMap

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

Fig. 16 Google : Type Roadmap
Fig. 16 Google : Type Roadmap
Fig. 17 Google : Type Hybrid
Fig. 17 Google : Type Hybrid
Fig. 18 Google : Type TERRAIN
Fig. 18 Google : Type TERRAIN

Vous changez de vue au travers de la propriété MapTypeID avec comme valeur possible mtROADMAP, mtSATELLITE,mtHYBRID, mtTERRAIN, mtMAPNIK, mtOSMARENDER, mtMapQuest et mtCYCLEMAP

Pour les images satellites (mtSATELLITE, mtHYBRID) Google Map commence à mettre en place des vues à 45°, vous pouvez activer cela au travers de la propriété Tilt

// map component ECMap

// shows a 45° perspective on image satellite
map.tilt := 45;

Cela n'est pas mis en place partout, voir la documentation de google pour plus d'infos

Lors du changement de type de carte que cela soit par code ou directement sur la carte par le menu, l'évènement OnChangeMapTypeId (Sender: TObject) est déclenché.

Avec l'api Google vous disposez aussi des vues StreetView et EarthView

5

Styles

La propriété Styles vous permet de redéfinir l'affichage des cartes standards.

// set styles for google maps
map.Styles := '[ { featureType: "road", stylers: [ { saturation: 22 }, { lightness: -55 } ] } ]';

// set styles for cloudmade & leaflet
map.Styles := '8';

Consultez directement le site de google maps pour plus d'informations sur la syntaxe des styles.

Google met aussi à votre disposition un assistant pour créer vos styles

Il vous suffit simplement d'assigner à map.Styles le contenu au format JSON généré par cet assistant.

Fig. 19 Obtenir les styles au format JSON

Fig. 20 Styles au format JSON

Sous CloudeMade et Leaflet la propriété Styles contient un identifiant, vous pouvez aller consulter la bibliothèque des styles disponibles ou créer le votre

Fig. 21 Editeur de styles CloudMade

2, 3, 8, 997, 998, 999 permettent d'idenfier les styles, exemple d'utilisation map.Styles:='999'


OpenMapQuest ne supporte pas les styles

6
Aller à la page
© 2012 ESCOT-SEP Christophe - Réalisé avec Help&Web
Site Meter