Komponenty Delphi pomoc
Start › Komponenty Delphi › TEditMapRaster

TEditMapRaster

Edycja i stylizacja kafli rastrowych (paint/crop/opacity, CSS filter, proxy, IndexedDB/SQLite).

VCLFMXniewidoczny
▶ Zobacz na żywo – demo HTML

Opis

Komponent niewidoczny powiązany z TTileMapVCL/FMX. Edycja pikseli na canvasie kafelka, lokalny proxy (tools/server, nie wdrażany), style CSS/MapLibre (neutral / google-like / apple-like / night), magazyn IndexedDB + SQLite z flagą modified.

Moduł: MapCommon.EditMapRaster (+ EditMapRasterConfig, RasterStore) · Klasa bazowa: TComponent · Platformy: VCL + FMX

TEditMapRaster – podgląd poglądowy
TEditMapRaster: styl night + edycja paint na TTileMapVCL (podgląd poglądowy). Podgląd poglądowy (nie zrzut z Delphi) – prawdziwa strona mapy komponentu w ramce imitującej formę.

Demo na żywo

Style night / google-like / apple-like, malowanie i przycinanie kafli, lokalny magazyn – jak TEditMapRaster.

▶ Otwórz demo HTML

Funkcje

Proxy i kafle Google/Apple: zob. tools/server/README.md.

Właściwości

WłaściwośćOpis
Map, AutoDetectPowiązanie z TTileMapVCL/FMX (FreeNotification); AutoDetect wybiera pierwszą mapę na formie.
UrlTemplate, ApiKeySzablon XYZ z {z}/{x}/{y}/{s}/{apikey}; klucz doklejany automatycznie.
ProxyURLOpcjonalny lokalny proxy (tools/server/tile_proxy.py, NIE wdrażany z pakietami).
StyleName, CustomStyleJSONneutral / google-like / apple-like / night / custom; przełączanie bez przeładowania mapy.
PaintMode, BrushColor, BrushSize, OpacityrpmNone / rpmPaint / rpmCrop / rpmOpacity – edycja pikseli na canvasie kafelka.
LocalStore, CacheFolder, StoreFile, ConfigFileIndexedDB w stronie; SQLite MBTiles-like z flagą modified w folderze danych aplikacji.
EnabledWłącza stylizację / edycję na podłączonej mapie.

Zdarzenia

ZdarzenieOpis
OnStyleChangedZmiana stylu (builtin lub JSON).
OnConfigLoadedWczytano ConfigFile / JSON.
OnTileEditedKafel edytowany na stronie (już w Store z modified=1).

Metody

MetodaOpis
ApplyBuiltinStyle, ApplyStyleJSONWbudowany lub własny styl JSON.
LoadConfigFromFile / SaveConfigToFile / LoadConfigJSONKonfiguracja urlTemplate + apiKey + proxy.
RefreshTile, RefreshAllTilesCache-bust + drop IndexedDB/SQLite.
ExpandTileURL, DetectMap, StoreRozwinięcie szablonu; wykrycie mapy; magazyn SQLite.

Przykłady

Podstawowa konfiguracja

Raster1.Map := TileMap1;
Raster1.UrlTemplate := 'https://tile.example.com/{z}/{x}/{y}.png?key={apikey}';
Raster1.ApiKey := GetEnvironmentVariable('MAP_TILE_KEY');
Raster1.StyleName := 'night';
Raster1.PaintMode := rpmPaint;
Raster1.LocalStore := True;
Raster1.RefreshTile(12, 2273, 1383);

Pełna lista API

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

Właściwości opublikowane (18)

WłaściwośćTypDomyślnieOpis
MapTComponentMapa TTileMapVCL/FMX (lub T3DMap*); wykrywana automatycznie (FreeNotification)
AutoDetectBooleanTrueGdy Map = nil, podłącz pierwszą mapę z formy (preferuje TTileMap*)
AutoLinkComponentsBooleanTrueAutomatycznie łącz pierwszy dostawcę wyszukiwania / TMapAreas / TEditMap z formy
EnabledBooleanTrueWłącza edycję / stylizację
EditPopupEnabledBooleanTrue
UrlTemplatestringSzablon kafli z {z}/{x}/{y}/{s}/{apikey}
ApiKeystringKlucz API – dopisywany przez {apikey} (lub ?key=); ustaw w kodzie / pliku konfiguracji
ProxyURLstringOpcjonalne proxy kafli (tools/server); kafle: <ProxyURL>/tile/{z}/{x}/{y}.png
CacheFolderstringFolder cache / magazynu ('' = folder danych aplikacji)
ConfigFilestringPlik konfiguracji JSON (map-raster-config v1)
StyleNamestringneutral / google-like / apple-like / night / custom – zmiana w locie, bez przeładowania
CustomStyleJSONstringWłasny styl JSON (map-raster-style v1) dla StyleName = custom
PaintModeTMapRasterPaintModerpmNonerpmNone / rpmPaint / rpmCrop / rpmOpacity – edycja pikseli kafla kliknięciem
OpacityDoubleKrycie warstwy rastrowej 0..1
LocalStoreBooleanTrueIndexedDB w stronie (najpierw lokalnie, potem serwer)
BrushColorstringKolor pędzla CSS (rpmPaint)
BrushSizeInteger6Rozmiar pędzla px
StoreFilestringPlik SQLite (MBTiles + kolumna modified); '' = folder danych aplikacji

Zdarzenia (4)

ZdarzenieTypOpis
OnStyleChangedTNotifyEventZmieniono styl
OnConfigLoadedTNotifyEventWczytano konfigurację
OnEditPopupChangedTNotifyEvent
OnTileEditedTMapRasterTileEditedEventKafel edytowany na stronie (już zapisany w Store, modified = 1)

Metody publiczne (13)

MetodaOpis
procedure DetectMapSzuka mapy na formie (gdy Map = nil)
procedure DetectLinkedComponentsWyszukuje na formie i łączy dostawcę / TMapAreas / TEditMap
function LoadConfigFromFile(const FileName: string = ''): BooleanWczytuje konfigurację JSON
function SaveConfigToFile(const FileName: string = ''): BooleanZapisuje konfigurację JSON
function LoadConfigJSON(const JSONText: string): BooleanKonfiguracja z tekstu JSON
function SaveConfigJSON(Indent: Integer = 2): stringKonfiguracja jako JSON
procedure ApplyBuiltinStyle(Style: TMapRasterBuiltinStyle)Styl wbudowany (rbsNeutral, rbsGoogleLike, rbsAppleLike, rbsNight)
procedure ApplyStyleJSON(const JSONText: string)Własny styl JSON (mapowanie kolorów, jasność, kontrast, nasycenie)
procedure RefreshTile(Z, X, Y: Integer)Wymusza odświeżenie kafla (cache-busting, usunięcie z IndexedDB/SQLite)
procedure RefreshAllTilesOdświeża wszystkie kafle
function ExpandTileURL(Z, X, Y: Integer; const Subdomain: string = 'a'): stringURL kafla po rozwinięciu szablonu (+ApiKey / proxy)
function CurrentCssFilter: stringBieżący filtr CSS stylu
function Store: TMapRasterTileStoreMagazyn SQLite (Put/Get/Delete/Clear/ModifiedTiles/MarkClean)

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

Zobacz też