Komponenty Delphi pomoc
Start › Komponenty Delphi › TCustomUrlSearchProvider

TCustomUrlSearchProvider

Dowolny geokoder opisany szablonami URL – odpowiedź w formacie Nominatim lub GeoJSON.

VCLFMXniewidoczny
▶ Zobacz na żywo – demo HTML

Opis

Gdy chcesz użyć innego serwera wyszukiwania, opisujesz go szablonami adresów z polami {query}, {lat}, {lon}, {limit}, {lang}. Odpowiedź rozpoznawana jest automatycznie (Nominatim JSON lub GeoJSON).

Moduł: MapCommon.Search · Klasa bazowa: TMapSearchProvider (TComponent) · Platformy: VCL + FMX

TCustomUrlSearchProvider – podgląd poglądowy
Mapa w stylu tmsTerrain (OpenTopoMap) z wynikami z własnego geokodera. Podgląd poglądowy (nie zrzut z Delphi) – prawdziwa strona mapy komponentu w ramce imitującej formę.

Demo na żywo

Edytowalny SearchURL / ReverseURL (Photon, Nominatim), placeholdery i automatyczne wykrycie formatu odpowiedzi.

▶ Otwórz demo HTML

Funkcje

Właściwości

WłaściwośćOpis
SearchURL, ReverseURL, AreaSearchURLSzablony adresów.
ResponseFormatFormat odpowiedzi.
Params, HeadersParametry i nagłówki HTTP (TStrings).
ApiKeyKlucz dostępu (sekret).
CountryCodes, Language, LimitKraje, język, liczba wyników.
MinRequestIntervalMs, RateLimitBackoffMsLimit zapytań i przerwa po 429.

Zdarzenia

ZdarzenieOpis
OnResultsWyniki.
OnErrorBłąd z rodzajem pek*.

Metody

MetodaOpis
Search, SearchInArea, ReverseZapytania.
CancelPending, RedactedURL, SupportsKindAnulowanie, adres bez sekretów, obsługiwane rodzaje.

Przykłady

Własny geokoder

// dowolny geokoder zwracający JSON (format Nominatim lub GeoJSON)
CustomUrlSearchProvider1.SearchURL :=
  'https://example.com/geocode?q={query}&limit={limit}&lang={lang}';
CustomUrlSearchProvider1.ReverseURL :=
  'https://example.com/reverse?lat={lat}&lon={lon}';
CustomUrlSearchProvider1.ResponseFormat := mrfAuto;   // mrfNominatim, mrfGeoJSON
CustomUrlSearchProvider1.ApiKey := GetEnvironmentVariable('GEOCODER_KEY');
CustomUrlSearchProvider1.Headers.Values['X-Client'] := 'MojaAplikacja';
TileMap1.SearchProvider := CustomUrlSearchProvider1;
TileMap1.SearchAddress('hydraulik Kraków');

Pełna lista API

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

Właściwości opublikowane (15)

WłaściwośćTypDomyślnieOpis
LanguagestringJęzyk wyników i komunikatów (pl, en, de …)
LimitInteger10Maksymalna liczba wyników
ConnectTimeoutInteger5000Limit czasu połączenia (ms)
TimeoutInteger15000Limit czasu odpowiedzi (ms)
UserAgentstringNagłówek User-Agent – identyfikuj aplikację
MinRequestIntervalMsInteger0Minimalny odstęp między zapytaniami (kolejka); Nominatim: 1000
RateLimitBackoffMsInteger10000Przerwa po HTTP 429
SearchURLstringSzablon URL wyszukiwania ({query}, {limit}, {lang}, {apikey}…)
ReverseURLstringSzablon URL reverse ({lat}, {lon}…)
AreaSearchURLstringSzablon dla wyszukiwania w obszarze ('' = SearchURL)
ParamsTStringsDodatkowe parametry Name=Value
HeadersTStringsDodatkowe nagłówki HTTP Name=Value
ApiKeystringKlucz API – tylko w kodzie, używany przez {apikey}
CountryCodesstringFiltr krajów ISO (np. pl,de)
ResponseFormatTMapResponseFormatmrfAutomrfAuto / Nominatim / Photon / GeoJSON

Zdarzenia (2)

ZdarzenieTypOpis
OnResultsTMapSearchResultsEventWyniki wyszukiwania
OnErrorTMapSearchErrorEventKażdy błąd (ErrorKind, HTTP, komunikat PL/EN)

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

WłaściwośćTypOpis
BusyBooleanTrwa zapytanie
HostBaseURLstringAdres ustawiony przez mapę (gdy BaseURL pusty)
HostTokenstringToken ustawiony przez mapę

Metody publiczne (7)

MetodaOpis
procedure Search(const Query: string)Wyszukiwanie (OnResults / callback)
procedure SearchInArea(const Query: string; const Area: TMapArea)Wyszukiwanie w zaznaczonym obszarze
procedure Reverse(const Lat, Lon: Double; Zoom: Integer = 18)Odwrotne geokodowanie
procedure CancelPendingAnuluje oczekujące zapytania
function SupportsKind(Kind: TMapSearchKind): BooleanCzy obsługuje rodzaj zapytania
function RedactedURL(const Request: TMapSearchRequest): stringURL z ukrytymi sekretami
function Scrub(const Text: string): stringZastępuje sekrety ***

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

Zobacz też