Composant Delphi / Google Maps / OpenStreetMap / Leaflet  / Mappilary / Native Maps 100% Delphi 0% WebBrowser 0% Javascript

Type de carte

Vous êtes ici :TECMap

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.

// Delphi map component ECMap

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

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

// Delphi map component ECMap

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

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.

8

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.

9

Type de carte

OpenMapQuest supporte la carte classique, une vue satellite et une vue hybride.

Fig. 18 OpenMapQuest
Fig. 18 OpenMapQuest

Avec CloudMade et Leaflet vous avez la carte routière classique.

Fig. 19 Carte CloudMade
Fig. 19 Carte CloudMade

Vous avez aussi les cartes OpenMapStreet, Mapnik, Osmarender, CycleMap et MapQuest (standard, satellite et hybride )

Fig. 20 Carte OpenMapStreet Mapnik
Fig. 20 Carte OpenMapStreet Mapnik
Fig. 21 Carte OpenMapStreet A render
Fig. 21 Carte OpenMapStreet A render
Fig. 22 OpenMapStreet CycleMap
Fig. 22 OpenMapStreet CycleMap
Fig. 23 OpenMapStreet MapQuest
Fig. 23 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

// Delphi map component ECMap

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

Fig. 24 Google : Type Roadmap
Fig. 24 Google : Type Roadmap
Fig. 25 Google : Type Hybrid
Fig. 25 Google : Type Hybrid
Fig. 26 Google : Type TERRAIN
Fig. 26 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

// Delphi map component ECMap

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

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

10

Styles

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

// Delphi map component ECMap

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

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. 27 Obtenir les styles au format JSON

Fig. 28 Styles au format JSON

Supprimer les Points d'intérêts Google Maps

Vous pouvez utilisez les styles pour supprimer tous ou certains POIs de votre carte

Fig. 29 POI

Cet exemple vous montre comment effacer tous les POIs sauf les poi.park

map.styles := '[{ featureType: "poi",elementType: "all", stylers: [{visibility: "off" } ]}'+
',{featureType: "poi.park",elementType: "all",stylers:[{visibility: "on" }, ] } ]';

Fig. 30 Only poi-park

Voir la documentation de Google pour toutes les valeurs featureType

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. 31 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

11
Aller à la page
Composant Delphi / Google Maps / OpenStreetMap / Leaflet  / Mappilary© 2016 ESCOT-SEP Christophe - Réalisé avec Help&Web - RSS - RSS - Google+