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: 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 Szablon XYZ z {z}/{x}/{y}/{s}/{apikey}; ApiKey doklejany automatycznie. PaintMode: paint / crop / opacity na canvasie kafelka; wynik → IndexedDB i SQLite (modified=1). Proxy opcjonalny (tools/server/tile_proxy.py|.php) – NIE wdrażany z pakietami; polityka OSM / zakaz Google-Apple. Style wbudowane + własny JSON (brightness/contrast/saturation/colorMap); przełączanie bez reload. Local-first: IndexedDB w stronie, potem serwer; RefreshTile z cache-busting. AutoDetect mapy na formie (FreeNotification).
Proxy i kafle Google/Apple: zob. tools/server/README.md.
Właściwości Właściwość Opis Map, AutoDetect Powiązanie z TTileMapVCL/FMX (FreeNotification); AutoDetect wybiera pierwszą mapę na formie. UrlTemplate, ApiKey Szablon XYZ z {z}/{x}/{y}/{s}/{apikey}; klucz doklejany automatycznie. ProxyURL Opcjonalny lokalny proxy (tools/server/tile_proxy.py, NIE wdrażany z pakietami). StyleName, CustomStyleJSON neutral / google-like / apple-like / night / custom; przełączanie bez przeładowania mapy. PaintMode, BrushColor, BrushSize, Opacity rpmNone / rpmPaint / rpmCrop / rpmOpacity – edycja pikseli na canvasie kafelka. LocalStore, CacheFolder, StoreFile, ConfigFile IndexedDB w stronie; SQLite MBTiles-like z flagą modified w folderze danych aplikacji. Enabled Włącza stylizację / edycję na podłączonej mapie.
Zdarzenia Zdarzenie Opis OnStyleChanged Zmiana stylu (builtin lub JSON). OnConfigLoaded Wczytano ConfigFile / JSON. OnTileEdited Kafel edytowany na stronie (już w Store z modified=1).
Metody Metoda Opis ApplyBuiltinStyle, ApplyStyleJSON Wbudowany lub własny styl JSON. LoadConfigFromFile / SaveConfigToFile / LoadConfigJSON Konfiguracja urlTemplate + apiKey + proxy. RefreshTile, RefreshAllTiles Cache-bust + drop IndexedDB/SQLite. ExpandTileURL, DetectMap, Store Rozwinię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ść Typ Domyślnie Opis 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ę EditPopupEnabledBooleanTrueUrlTemplatestringSzablon 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) Zdarzenie Typ Opis OnStyleChangedTNotifyEventZmieniono styl OnConfigLoadedTNotifyEventWczytano konfigurację OnEditPopupChangedTNotifyEventOnTileEditedTMapRasterTileEditedEventKafel edytowany na stronie (już zapisany w Store, modified = 1)
Metody publiczne (13) Metoda Opis 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ż