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

Import/Export

Vous êtes ici :TECMap

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, WKT, KML et GeoJSON mais dans ces formats seules les données géographiques sont exploitées.

Sauvegarde/Restauration

function SaveToFile(const filename:string):boolean;

Enregistre la carte dans un fichier texte.

Utilisez les extensions .gpx , .wkt, .kml et .json pour spécifier un format, autrement c'est le format interne d'ECMap qui sera employé

function LoadFromFile(const filename:string):boolean;

Charge la carte avec un fichier texte

Utilisez les extensions .gpx , .kml, .wkt, .geojson 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

1

 

property toGPX : string;

Propriété en lecture/écriture qui donne accès aux données de la carte dans le format GPX.

property toTxt : string;

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.

property toWKT : string;

Propriété en lecture/écriture qui donne accès aux données de la carte dans le format WKT.

Fig. 1 Import WKT

property ToKml : string;

Propriété en lecture / écriture qui retourne les overlays (tous sauf les Labels) au format Kml

Cette propriété est utilisée par SaveToKmlFile

EarthView permet l'import/export KML dans un format plus complet

property ToGeoJSON : string;

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, ToWKT , 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
//
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;

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

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

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

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.

1
Aller à la page
Réalisé avec la version gratuite pour les particuliers d'Help&Web