Komponent niewidoczny, który rysuje obszary z plików GeoJSON na mapie (kafelkowej i 3D). Wybór jest hierarchiczny: Cały świat → kontynenty → państwa. W Object Inspectorze kontynenty i państwa zaznaczasz w drzewie z polami wyboru.
Moduł:MapCommon.Areas · Klasa bazowa:TComponent · Platformy: VCL + FMX
TMapAreas: kontury państw (Europa Środkowa), cienkie granice, bez regionów admin-1 — edytor drzewa w IDE. Podgląd poglądowy (nie zrzut z Delphi) – prawdziwa strona mapy komponentu w ramce imitującej formę.
Demo na żywo
Województwa Polski, kraje Europy Środkowej lub cały świat; podświetlenie, OnAreaClick, kolory na żywo.
Styl obszarów z hierarchii (FillColor, FillOpacity, LineColor, LabelProperty…).
Items
Dodatkowe zestawy obszarów (własne pliki).
CacheFolder, UseCache, CheckVersion
Pamięć podręczna i wersja danych.
Timeout, FitOnLoad, Active
Limit czasu pobierania, dopasowanie widoku, włączenie.
Zdarzenia
Zdarzenie
Opis
OnAreaClick
Kliknięcie obszaru: kod ISO-2, nazwa, właściwości JSON.
OnAreaHover
Najechanie na obszar.
OnAreaLoaded
Zestaw wczytany i narysowany.
OnValidationError
Plik GeoJSON odrzucony.
Metody
Metoda
Opis
ShowCountry, FitToArea
Pokaż państwo / dopasuj widok.
LoadFromFile, LoadFromURL, LoadFromString
Własne dane.
BeginUpdate, EndUpdate, Refresh
Zmiany grupowe, przerysowanie.
ClearCache, Clear
Pamięć podręczna, usunięcie zestawów.
Przykłady
Świat, kontynenty, państwa
// cały świat – 258 państw
MapAreas1.WholeWorld := True;
MapAreas1.WorldDetail := mwdCountries; // mwdProvinces = regiony admin-1// wybrane kontynenty
MapAreas1.WholeWorld := False;
MapAreas1.Continents := [macEurope, macAfrica];
MapAreas1.ShowCountryOutlines := True;
MapAreas1.ShowRegions := True; // regiony wewnątrz państw// konkretne państwa (kontynent wynika z kodów ISO)
MapAreas1.BeginUpdate;
try
MapAreas1.Continents := [];
MapAreas1.Countries := 'PL,CZ,SK';
finally
MapAreas1.EndUpdate;
end;
MapAreas1.ShowCountry('PL'); // filtr + przybliżenie
Zdarzenia i własne pliki
procedure TForm1.MapAreas1AreaClick(Sender: TObject; const SetId: string;
const Lat, Lon: Double; const CountryISO2, FeatureName, PropertiesJSON: string);
begin
Caption := FeatureName + ' (' + CountryISO2 + ')';
end;
// własny plik GeoJSON, np. strefy dostaw
Item := MapAreas1.LoadFromFile('C:\dane\strefy.geojson', 'Strefy dostaw');
Item.Style.FillColor := '#2e7d32';
Item.Style.FillOpacity := 0.2;
MapAreas1.FitToArea(Item);
Pełna lista API
Generowana z deklaracji w kodzie (Source/*.pas): wszystkie opublikowane właściwości i zdarzenia TMapAreas (także dziedziczone), właściwości publiczne i metody publiczne.
Właściwości opublikowane (25)
Właściwość
Typ
Domyślnie
Opis
Active
Boolean
True
False = nic nie jest wczytywane ani pokazywane
EditPopupEnabled
Boolean
True
RMB + long-press (~500 ms) otwierają edytor stylu obszaru; False wyłącza oba
Edit
TEditMapRaster
AutoLinkComponents
Boolean
True
Automatycznie łącz pierwszy dostawcę wyszukiwania / TMapAreas / TEditMap z formy
WholeWorld
Boolean
False
Cały świat w jednym pliku (państwa lub admin-1)
WorldDetail
TMapWorldDetail
mwdCountries
mwdCountries / mwdAdmin1 dla WholeWorld
Continents
TMapAreaContinents
[]
Kontynenty do wczytania (zestaw)
Countries
string
Filtr ISO w wybranych kontynentach (np. PL,DE,CZ)
ShowCountryOutlines
Boolean
True
Obrysy państw / regionów admin-1 z plików kontynentów
ShowRegions
Boolean
False
Wypełnienie regionów
HierarchyStyle
TMapAreaStyle
Styl hierarchii (wypełnienie, obrys, grubość, etykiety)
ShowAdministrative
Boolean
False
Jawne granice administracyjne wybranych państw na poziomie AdminLevel