TECMap permet d'enregistrer et de recharger la totalité de ses données dans un simple fichier texte, cela comprend non seulement les paramètrages du composant et des vues mais aussi les données cartographiques des overlays
Vous pouvez aussi importer/exporter vos données aux formats GPX, KML et GeoJSON mais dans ces formats seules les données géographiques sont exploitées.
Sauvegarde/Restauration
Enregistre la carte dans un fichier texte.
Utilisez les extensions .gpx , .kml et .json pour spécifier un format, autrement c'est le format interne d'ECMap qui sera employé
Charge la carte avec un fichier texte
Utilisez les extensions .gpx , .kml et .json pour spécifier un format, autrement c'est le format interne d'ECMap qui sera employé
LoadFromFile peut télécharger les fichiers sur internet
15
Propriété en lecture/écriture qui donne accès aux données de la carte dans le format GPX.
Cette propriété est utilisée par SaveToFile, LoadFromFile.
Propriété en lecture/écriture qui donne accès aux données de la carte dans un format texte.
Cette propriété est utilisée par SaveToFile, LoadFromFile.
Propriété en lecture / écriture qui retourne les overlays (tous sauf les Labels) au format Kml
Cette propriété est utilisée par SaveToKmlFileEarthView permet l'import/export KML dans un format plus complet
Propriété en lecture / écriture qui retourne/importe les overlays (juste les markers, les polylines, les polygones, les cercles et les rectangles) au format GeoJSON
L'affection d'une valeur à toTxt, ToKml, ToGpx, ToGeoJSON ou le chargement d'un fichier par LoadFromFile provoque les évènements OnBeforeChangeToTxt et OnAfterChangeToTxt, le premier à lieu juste avant le changement de valeur et le second juste après.
OnLoadOverlay est aussi déclenché après l'ajout de chaque overlay (marker, polyline, polygone...) cela peut vous permettre d'ajuster les propriétés pendant le chargement des données.
Vous pouvez stopper le chargement en basculant StopLoadOverlay à true
// Delphi map component ECMap
//
procedure TFormDemoECMap.mapLoadOverlay(sender: TObject; const Index: Integer; const OverlayType: TOverlayType);
begin
case OverlayType of
ovMarker : begin
// override data marker
map.markers[index].name := 'your data';
end;
ovLine : begin
// override data Polyline
map.Polylines[index].Color := clBlue;
map.Polylines[index].Update;
end;
...
end;
// stop if too many markers
map.StopLoadOverlay := map.Markers.Count>3000;
end;
Paramètrage import/export
Lorsque vous importez/exportez au format texte, par défaut l'ensemble des données le sont, que cela soit les paramètres de la carte (type d'api, position etc) ou les overlays (markers, circles, routes etc).
De même que lors d'une importation les anciens overlays sont remplacés par les nouveaux.
La propriété ToTxtType vous offre un certain contrôle.
// Delphi
map component ECMap
// valeur par défaut,
// importe/exporte tout
(map+overlay)
// remplace l'ancien contenu par le
nouveau
map.toTxtType := [ttaMap,ttaOverlays,ttaReplace];
// importe/exporte tout
(map+overlay)
// ajoute les nouveaux overlays à
ceux déjà existant
map.toTxtType := [ttaMap,ttaOverlays];
// importe/exporte uniquement les
paramètres de la carte
map.toTxtType := [ttaMap];
// importe/exporte uniquement les
overlays
map.toTxtType := [ttaOverlays];
format texte
chaque partie est découpée en section, les données sont nommées et n'ont pas besoin d'être dans un ordre particulier.
Pour les overlays chaque ligne correspond aux données d'un élément (un marker, un cercle etc)
Exemple de carte
[map]
draggable=true
draggablecursor=CrossHair
draggingcursor=
enableuicontrol=true
maptypecontrol=false
navigationcontrol=true
scalecontrol=false
zoomcontrol=true
mobilesenabled=true
latitude=43.2318637451068
longitude=0.0860298080261312
maptypeid=ROADMAP
maptypecontrolstyle=DEFAULT
maptypecontrolposition=TOP_RIGHT
navigationstyle=DEFAULT
navigationposition=TOP_LEFT
scalestyle=DEFAULT
scaleposition=BOTTOM_LEFT
zoomstyle=DEFAULT
zoomposition=TOP_LEFT
title=démo tarbes composant google map
zoom=15
[markers]
adress=;cursor=;icon=http://google-maps-icons.googlecode.com/files/home.png;shadow=;title=home;animation=BOUNCE;name=;icon.width=32;icon.height=37;icon.top=0;icon.left=0;icon.anchor.x=16;icon.anchor.y=37;shadow.width=59;shadow.height=32;shadow.top=0;shadow.left=0;shadow.anchor.x=16;shadow.anchor.y=32;alt=314.2731018;lat=43.2348454;lng=0.0756332;infowindow=-1;zindex=0;tag=0;clickable=true;draggable=true;dragging=false;flat=true;visible=true
adress=;cursor=;icon=;shadow=;title=classic;animation=;name=;icon.width=32;icon.height=32;icon.top=0;icon.left=0;icon.anchor.x=16;icon.anchor.y=32;shadow.width=59;shadow.height=32;shadow.top=0;shadow.left=0;shadow.anchor.x=16;shadow.anchor.y=32;alt=-9999;lat=45.7130572617061;lng=0.776228114733059;infowindow=-1;zindex=0;tag=0;clickable=true;draggable=true;dragging=false;flat=false;visible=true
adress=;cursor=;icon=http://maps.google.com/mapfiles/kml/pal4/icon40.png;shadow=;title=nuage;animation=;name=;icon.width=32;icon.height=32;icon.top=0;icon.left=0;icon.anchor.x=16;icon.anchor.y=32;shadow.width=59;shadow.height=32;shadow.top=0;shadow.left=0;shadow.anchor.x=16;shadow.anchor.y=32;alt=335.1564026;lat=43.2336125285346;lng=0.0755495857201656;infowindow=0;zindex=0;tag=0;clickable=true;draggable=true;dragging=false;flat=true;visible=true
adress=;cursor=;icon=http://google-maps-icons.googlecode.com/files/cycling.png;shadow=;title=Velo;animation=;name=;icon.width=32;icon.height=37;icon.top=0;icon.left=0;icon.anchor.x=16;icon.anchor.y=37;shadow.width=59;shadow.height=32;shadow.top=0;shadow.left=0;shadow.anchor.x=16;shadow.anchor.y=32;alt=316.4778442;lat=42.8695665637582;lng=-0.112703923657986;infowindow=-1;zindex=0;tag=0;clickable=true;draggable=true;dragging=false;flat=true;visible=true
[infowindows]
content=<h1>Nuage</h1><br>Image
locale;anchor=2;maxwidth=0;zindex=0;lat=43.2336125285346;lng=0.0755495857201656;open=false
[routes]
startlat=43.23443;startlng=0.0737;endlat=43.24342;endlng=0.09581;wplat0=43.241668;wplng0=0.072025;travelmode=DRIVING;avoidhighway=false;avoidtolls=false;draggable=true;color=12615680;opacity=50;weight=5;zindex=1;name=Tarbes
/
Aureilhan;marker.icon=http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png;marker.visible=true;marker.clickable=true;marker.flat=false
startlat=43.23313;startlng=0.07419;endlat=43.22849;endlng=0.10676;travelmode=DRIVING;avoidhighway=false;avoidtolls=false;draggable=true;color=33023;opacity=50;weight=5;zindex=1;name=Tarbes
/
Séméac;marker.icon=http://www.visual-case.it/vc/pics/casetta_base.png;marker.visible=true;marker.clickable=true;marker.flat=false
startlat=43.23481;startlng=0.07882;endlat=48.85631;endlng=2.35001;travelmode=DRIVING;avoidhighway=true;avoidtolls=false;draggable=true;color=32768;opacity=50;weight=5;zindex=1;name=Tarbes
/
Paris;marker.icon=http://maps.google.com/mapfiles/ms/micons/purple-pushpin.png;marker.visible=true;marker.clickable=true;marker.flat=false
startlat=43.00821;startlng=-0.09972;endlat=42.85121;endlng=-0.13994;travelmode=DRIVING;avoidhighway=false;avoidtolls=false;draggable=true;color=4868863;opacity=50;weight=5;zindex=1;name=Pont
d'espagne;marker.icon=;marker.visible=true;marker.clickable=true;marker.flat=false
[mobiles]
0
distance=148;marker=2;route=1;speed=60;segment=2;mobile=true;direction=endstart
distance=338133;marker=1;route=2;speed=130;segment=2272;mobile=true;direction=startend
distance=21139;marker=3;route=3;speed=30;segment=329;mobile=true;direction=startend
[streetview]
latitude=-1
longitude=-1
visible=false
heading=140
pitch=10
zoom=1
navstyle=DEFAULT
navposition=TOP_LEFT
adrposition=TOP_LEFT
navcontrol=true
adrcontrol=true
closebtn=true
link=true
[polylines]
color=255;opacity=50;weight=5;zindex=1;latlng=43.2287477339158,0.0730968322387859,43.2326562567397,0.0736118163696453,43.2319683748977,0.0758863296142742,43.2296858022526,0.0752855147949383,43.2293731144111,0.0766588058105633;visible=true;clickable=true;geodesic=false;
[polygones]
color=16744448;opacity=80;weight=5;zindex=1;latlng=43.2392845896161,0.074169715844743,43.2389094105985,0.0777316894165203,43.236752086419,0.0775600280395672,43.2368146186294,0.0745130385986492;visible=true;clickable=true;geodesic=false;fillcolor=12615680;fillopacity=50
[circles]
color=16384;opacity=80;weight=3;zindex=1;latlng=43.2348454,0.0756332;visible=true;clickable=true;geodesic=true;fillcolor=32768;fillopacity=50;radius=127
[rectangles]
[labels]
Import/Export des overlays
Les overlays disposent eux aussi de propriété toTxt permettant l'importation et l'exportation, que cela soit au niveau de leur liste (Markers, Routes etc) que de l'élément lui même.
Au niveau des listes l'importation est obligatoirement un ajout, il n'est pas tenu compte de la propriété toTxtType qui n'est prise en charge qu'au niveau global.
// Delphi
map component ECMap
// add circle by txt
map.Circles.toTxt := 'color=16384;opacity=80;weight=3;zindex=1;latlng=43.2348454,0.0756332;visible=true;clickable=true;geodesic=true;fillcolor=32768;fillopacity=50;radius=127';
Lorsque vous utilisez toTxt au niveau des overlays vous ne devez pas indiquer la section, toutes les propriétés ne sont pas nécessaire, les absentes auront des valeurs par défaut.
5