Komponenty Delphi pomoc
Start › Komponenty Delphi › TEditMap

TEditMap

Edycja wyglądu mapy 3D i opcji terenu: kolory warstw, EditSubject (mapa / teren), cofanie, zapis JSON.

VCLFMXniewidoczny
▶ Zobacz na żywo – demo HTML

Opis

Komponent niewidoczny (alias TEdit3DMap) podłączany do T3DMapVCL/FMX. Trzyma wszystkie zmiany stylu, pozwala je cofać i ponawiać, zapisuje je do pliku JSON i przywraca ustawienia fabryczne. Okno edytora ma drzewo kategorii i warstw.

Moduł: MapCommon.EditMap (+ EditMapVCL / EditMapFMX) · Klasa bazowa: TComponent · Platformy: VCL + FMX

TEditMap – podgląd poglądowy
Okno edytora TEditMap (drzewo kategorii → warstw, kolor, przezroczystość, Cofnij/Ponów, Przywróć domyślne) nad mapą T3DMapVCL. Podgląd poglądowy (nie zrzut z Delphi) – prawdziwa strona mapy komponentu w ramce imitującej formę.

Demo na żywo

Edycja kolorów i widoczności kategorii warstw, Cofnij/Ponów, Przywróć domyślne i zapis JSON (map-edit-settings) – jak TEditMap.

▶ Otwórz demo HTML

Funkcje

Właściwości

WłaściwośćOpis
EditSubjectCo edytujemy: eskMapLayers (warstwy T3DMap) albo eskTerrain (opcje T3DTerrain); jedno TEditMap na formie wystarczy.
SettingsFilePlik JSON z ustawieniami (edytor plików *.json w Object Inspectorze).
DefaultSettingsFilePlik ustawień fabrycznych używany przez RestoreDefaults (puste = styl serwera).
AutoLoadWczytaj SettingsFile automatycznie po załadowaniu mapy.
UndoLimitLiczba kroków cofania.
ServerStyleNameNazwa stylu przy zapisie na serwerze.
TimeoutLimit czasu operacji sieciowych (ms).

Zdarzenia

ZdarzenieOpis
OnChangeKażda zmiana (także cofnięcie).
OnRestoreDefaultsPo przywróceniu ustawień domyślnych.
OnValidationErrorPlik / JSON odrzucony – lista błędów.
OnLoaded, OnSavedWczytano / zapisano ustawienia.

Metody

MetodaOpis
SetColor, SetOpacity, SetWidth, SetVisibleZmiana jednej warstwy.
SetCategoryColor, SetCategoryVisibleZmiana całej kategorii.
Undo, Redo, CanUndo, CanRedoHistoria zmian.
RestoreDefaults, IsDefaultUstawienia fabryczne.
SaveToFile, LoadFromFile, SaveToJSON, LoadFromJSONZapis i odczyt JSON.
SaveToServer, LoadFromServerStyl na serwerze map.
ShowEditor, ShowOpenDialog, ShowSaveDialogOkna dialogowe.

Przykłady

Zmiany z kodu

// T3DMapVCL1.EditMap := EditMap1 (łączy się samo w czasie projektowania)
EditMap1.SettingsFile := 'map-settings.json';
EditMap1.AutoLoad := True;               // wczytaj przy starcie

EditMap1.SetColor('water', '#1a3a6b');
EditMap1.BeginUpdate;                    // jeden krok cofania
try
  EditMap1.SetColor('road_trunk_primary', '#ff9800');
  EditMap1.SetWidth('road_trunk_primary', 6);
  EditMap1.SetOpacity('road_trunk_primary', 0.9);
finally
  EditMap1.EndUpdate;
end;
EditMap1.SetCategoryVisible('etykiety', False);
EditMap1.Undo;
EditMap1.RestoreDefaults;                // „Przywróć domyślne” – też da się cofnąć
EditMap1.SaveToFile('map-settings.json');
EditMap1.ShowEditor;                     // okno: drzewo, kolor, przezroczystość, grubość

Walidacja pliku

procedure TForm1.EditMap1ValidationError(Sender: TObject; const Source: string;
  Errors: TStrings);
begin
  Memo1.Lines.Add('Plik ustawień odrzucony (' + Source + '):');
  Memo1.Lines.AddStrings(Errors);        // np. "layers.water.color: not a colour"
end;

Pełna lista API

Generowana z deklaracji w kodzie (Source/*.pas): wszystkie opublikowane właściwości i zdarzenia TEditMap (także dziedziczone), właściwości publiczne i metody publiczne.

Właściwości opublikowane (7)

WłaściwośćTypDomyślnieOpis
SettingsFilestringPlik JSON ustawień wczytywany przy starcie (AutoLoad)
DefaultSettingsFilestringWłasny plik domyślny dla RestoreDefaults
AutoLoadBooleanTrueWczytaj SettingsFile przy starcie
ServerStyleNamestringNazwa stylu zapisanego na serwerze (Style = m3sServerStyle)
UndoLimitInteger100Liczba kroków cofania
TimeoutInteger15000Limit czasu wywołań serwera (ms)
EditSubjectTMapEditSubjectKindeskMapLayers

Zdarzenia (7)

ZdarzenieTypOpis
OnChangeTMapEditChangeEventKażda zmiana ustawień (warstwa, właściwość)
OnRestoreDefaultsTNotifyEventPrzywrócono domyślne
OnValidationErrorTMapEditValidationEventBłąd walidacji JSON / pliku
OnLoadedTMapEditFileEventWczytano ustawienia (plik / serwer)
OnSavedTMapEditSavedEventZapisano (plik / serwer)
OnSubjectChangedTNotifyEvent
OnTerrainOptionChangedTMapEditTerrainOptionEvent

Właściwości publiczne – tylko w kodzie (7)

WłaściwośćTypOpis
SubjectsTMapEditSubjectKinds
SettingsTMapStyleSettingsBieżące ustawienia warstw
LastErrorsTStringListBłędy ostatniej walidacji
ModifiedBooleanZmiany od ostatniego zapisu / wczytania
ServerPasswordstringHasło API stylów (tylko w kodzie, nie zapisywane)
ServerURLstringURL API stylów (tylko w kodzie)
BaseStyleURLstringStyl bazowy łączony z ustawieniami przy SaveToServer

Metody publiczne (52)

MetodaOpis
procedure AttachStyleTarget(const Target: IMapStyleTarget)Wewnętrzne: rejestracja mapy (IMapStyleSource)
procedure DetachStyleTarget(const Target: IMapStyleTarget)Wewnętrzne: wyrejestrowanie mapy
function CurrentChangesJSON: stringBieżące zmiany jako JSON
function CurrentChangesJSONFor(Kind: TMapEditSubjectKind): string
function CurrentTerrainOptionsJSON: string
function ActiveSubject: TMapEditSubjectKind
function SubjectDescription: string
function TargetCount: Integer
function TargetKind(Index: Integer): TMapEditSubjectKind
function TargetName(Index: Integer): string
procedure SetTerrainOption(const Prop, ValueJSON: string)
function GetTerrainOption(const Prop: string): string
procedure ClearTerrainOptions
procedure SetTerrainContourLines(Visible: Boolean)
procedure SetTerrainElevationLabels(Visible: Boolean)
procedure SetTerrainHillshade(Visible: Boolean)
procedure SetTerrainObjectElevation(Visible: Boolean)
procedure SetTerrainContourColor(const CSSColor: string)
procedure SetTerrainContourStyle(const IntervalM, WidthPx: Double)
procedure EnsureAutoLoadedWykonuje AutoLoad teraz
procedure BeginUpdateGrupuje zmiany w jeden krok cofania
procedure EndUpdateKończy grupę zmian
procedure SetColor(const LayerId, CSSColor: string)Kolor warstwy (CSS)
procedure SetPaintColor(const LayerId, Prop, CSSColor: string)Kolor dowolnej właściwości paint
procedure SetOpacity(const LayerId: string; const Value: Double)Przezroczystość warstwy 0..1
procedure SetVisible(const LayerId: string; Value: Boolean)Widoczność warstwy
procedure SetWidth(const LayerId: string; const Value: Double)Grubość linii warstwy
procedure SetZoomStops(const LayerId, Prop: string; const Stops: TMapZoomStops)Wartości zależne od zoomu
procedure SetValueJSON(const LayerId: string; Section: TMapStyleSection; const Prop, ValueJSON: string)Dowolna wartość paint/layout jako JSON
procedure SetCategoryColor(const Category, CSSColor: string)Jeden kolor dla kategorii warstw (np. water)
procedure SetCategoryVisible(const Category: string; Value: Boolean)Widoczność kategorii warstw
function GetColor(const LayerId: string): stringOdczyt koloru
function GetOpacity(const LayerId: string): DoubleOdczyt przezroczystości
function GetVisible(const LayerId: string): BooleanOdczyt widoczności
function GetWidth(const LayerId: string): DoubleOdczyt grubości
function GetZoomStops(const LayerId, Prop: string): TMapZoomStopsOdczyt wartości zależnych od zoomu
function GetValueJSON(const LayerId: string; Section: TMapStyleSection; const Prop: string): stringOdczyt wartości jako JSON
function CanUndo: BooleanCzy można cofnąć
function CanRedo: BooleanCzy można ponowić
function Undo: BooleanCofnij
function Redo: BooleanPonów
procedure RestoreDefaultsPrzywraca domyślne (DefaultSettingsFile lub fabryczne); można cofnąć
function IsDefault: BooleanCzy ustawienia są domyślne
function LoadFromJSON(const JSONText: string; const Source: string = 'json'): BooleanWaliduje i stosuje JSON ustawień
function SaveToJSON(Indent: Integer = 2): stringUstawienia jako JSON
function LoadFromFile(const FileName: string): BooleanWczytuje plik JSON
function SaveToFile(const FileName: string): BooleanZapisuje plik JSON
function ShowOpenDialog: BooleanOkno otwierania pliku *.json
function ShowSaveDialog: BooleanOkno zapisu pliku *.json
procedure ShowEditorOkno edytora (drzewo warstw, kolory, cofanie)
procedure SaveToServer(const Name: string; const Password: string = '')Zapisuje styl na serwerze map pod nazwą (asynchronicznie, OnSaved)
procedure LoadFromServer(const Name: string)Wczytuje styl z serwera (OnLoaded)

Pełny opis wszystkich właściwości: dokumentacja komponentów map.

Zobacz też