Delphi, C++ Builder i .NET Część sgcUI

sgcMaps, natywne mapy dla Delphi, C++ Builder i .NET

Umieść prawdziwą mapę w swojej aplikacji bez kontrolki przeglądarki i bez linijki JavaScriptu. sgcMaps sam rysuje kafelki rastrowe i wektorowe, dodaje warstwy z serwerów WMS i WMTS, pokazuje tysiące zgrupowanych znaczników, trasy i strefy, geokoduje adresy i działa dalej offline z lokalnymi kafelkami i routerem offline.

VCL, FireMonkey, Lazarus, WinForms, WPF, AvaloniaBez kontrolki przeglądarki, bez JavaScriptuBezpłatna edycja .NET CommunityW sgcUI Enterprise
TsgcVCLMap pokazujący centrum Madrytu z kafelków wektorowych z czerwonymi i niebieskimi znacznikami lokalizacji

Wszystko, czego potrzebuje aplikacja z mapą

Osiemnaście funkcji, każda z prawdziwym API i tematem pomocy.

Kafelki i dane mapy

Kontrolka mapy sama rysuje każdy kafelek, z serwera kafelków, usługi WMS lub WMTS, źródła wektorowego lub plików na dysku.

Prawdziwa mapa w twoim formularzu, bez przeglądarki w środku

Kafelki i dane mapy

Prawdziwa mapa w twoim formularzu, bez przeglądarki w środku

Większość komponentów map opakowuje widok webowy i bibliotekę JavaScript, więc twoja aplikacja desktopowa musi dostarczać przeglądarkę. sgcMaps tego nie robi. TsgcVCLMap i TsgcFMXMap pobierają, buforują i rysują kafelki na własnym płótnie, obsługują powiększanie kółkiem myszy i przeciąganie, a zdarzenia zgłaszają jak zwykłe zdarzenia Delphi. Twoja mapa jest natywną kontrolką jak każda inna: dokuje się, korzysta z motywu formularza i debuguje się jak reszta twojego kodu. Nie ma dodatkowego procesu do wdrożenia ani zabezpieczenia, a mapa zachowuje się tak samo na każdej maszynie, na której działa twoja aplikacja.

  • Kolekcja Layers zawiera jeden lub więcej elementów TsgcMapLayer, każdy z własnym TileSourceType
  • TsgcFMXMap działa w systemie Windows od Delphi XE6 oraz w systemach macOS, iOS i Android od Delphi 10.4
  • Kontrolka Lazarus LCL pokazuje kafelki z dysku
  • W .NET SgcMapControl dla WinForms, TsgcWpfMap dla WPF, TsgcAvaloniaMap dla Avalonia 12 i MapView bez interfejsu współdzielą jeden silnik
  • Od prawej do lewej dla arabskiego i hebrajskiego: przyciski powiększania, przełącznik warstw, kompas, skala i informacja o źródle przechodzą na przeciwną stronę, a mapa zachowuje swoją orientację geograficzną
Przeczytaj temat pomocy
Wybierz dostawcę kafelków jedną właściwością

Kafelki i dane mapy

Wybierz dostawcę kafelków jedną właściwością

Wybór mapy bazowej nie powinien oznaczać czytania dokumentacji serwera kafelków. Ustaw Provider w warstwie i wywołaj sgcMapApplyProvider: warstwa dostaje szablon URL, maksymalne powiększenie i tekst atrybucji tego dostawcy. OpenStreetMap, OpenTopoMap, Esri World Imagery i Esri World Street działają bez klucza. MapTiler, Thunderforest i Stadia wymagają twojego własnego klucza API. Twój własny serwer kafelków jest o jeden szablon URL dalej. Każda warstwa ma własnego dostawcę, więc warstwa satelitarna i uliczna mogą być na jednej mapie, a użytkownik przełącza je na samej mapie.

  • Bez klucza: mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Z twoim kluczem: mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom z URLTemplate czyta dowolny serwer {z}/{x}/{y}
  • Atrybucja dostawcy jest rysowana na mapie za ciebie
  • ShowLayerSwitcher umieszcza na mapie przycisk warstw
Przeczytaj temat pomocy
Kafelki wektorowe, które pozostają ostre w każdym rozmiarze

Kafelki i dane mapy

Kafelki wektorowe, które pozostają ostre w każdym rozmiarze

Kafelki rastrowe się rozmywają przy skalowaniu, a każda zmiana stylu oznacza nowe obrazy z serwera. Przy kafelkach wektorowych kontrolka dostaje geometrię i sama rysuje drogi, wodę, budynki i etykiety, więc tekst pozostaje wyraźny na ekranach o wysokim DPI i w eksportowanych obrazach. Wskaż warstwie serwer Mapbox Vector Tile i zostaw VectorStyleFile puste, aby użyć wbudowanego stylu, albo wczytaj plik stylu MapLibre lub Mapbox GL, aby dopasować go do swojej marki. Warstwy wektorowe działają tak samo w kontrolce VCL i FireMonkey.

  • mtsVectorHTTP czyta serwer kafelków wektorowych, od Delphi XE2
  • mtsVectorMBTiles czyta lokalny plik wektorowy MBTiles (pakiet offline)
  • mtsVectorPMTiles czyta kafelki wektorowe z archiwum PMTiles, pliku lokalnego lub adresu URL (pakiet offline)
  • TsgcMapVectorStyle wczytuje styl przez LoadFromFile lub LoadFromJSON
  • Dekodowanie i rysowanie są w TsgcMapTileSource_MVT, w zwykłym kodzie Delphi
Przeczytaj temat pomocy

Kafelki i dane mapy

Warstwy z Twoich serwerów WMS i WMTS

Miasta, przedsiębiorstwa użyteczności publicznej i urzędy kartograficzne publikują użytkowanie terenu, kataster i ortofotomapy jako usługi internetowe OGC, a nie jako kafelki z/x/y. Ustaw TileSourceType na mtsWMS lub mtsWMTS, a warstwa pobiera swoje obrazy z usługi, jako przezroczysta nakładka na mapie bazowej albo jako sama mapa bazowa. Czytniki capabilities wyświetlają warstwy oferowane przez usługę i konfigurują warstwę za Ciebie, dzięki czemu użytkownicy wybierają warstwę po tytule, zamiast wpisywać parametry żądania.

  • mtsWMS wysyła żądania GetMap WMS 1.3.0 lub 1.1.1, z Layers, Styles, ImageFormat i Transparent w opcjach WMS warstwy
  • mtsWMTS czyta usługi KVP i REST przez opcje WMTS warstwy
  • TsgcMapWMSCapabilities i TsgcMapWMTSCapabilities wczytują dokument capabilities, a ApplyToLayer konfiguruje na jego podstawie warstwę
  • Dokument wyjątku z serwera trafia do OnTileError wraz z jego tekstem
  • W .NET TileSourceType.Wms i TileSourceType.Wmts, z WmsCapabilities i WmtsCapabilities

We wszystkich wydaniach, także w bezpłatnym wydaniu Community, od Delphi 2009. Mapa pozostaje w układzie Web Mercator: warstwy WMS są żądane w EPSG:3857, warstwy WMTS wymagają zestawu macierzy kafelków Web Mercator, takiego jak GoogleMapsCompatible, a GetFeatureInfo nie jest obsługiwane.

Przeczytaj temat pomocy

Kafelki i dane mapy Tylko zarejestrowana

Pracuj dalej, gdy sieci nie ma

Technik w piwnicy, statek na morzu czy sieć hali produkcyjnej nie mogą zależeć od serwera kafelków. sgcMaps czyta kafelki z dysku dokładnie tak, jak czyta je z sieci. Nadaj warstwie CacheFolder, a każdy pobrany kafelek zostanie zachowany na następne uruchomienie. Dla kompletnego pakietu offline TsgcMapTileDownloader pobiera obszar i zakres powiększenia z wyprzedzeniem do folderu lub pliku MBTiles.

  • mtsFolder czyta folder z/x/y z kafelkami PNG lub JPEG
  • mtsMBTiles czyta rastrowy plik MBTiles, od Delphi XE7 (FireDAC SQLite)
  • CountTiles podaje rozmiar pobierania, zanim je zaczniesz; DelayMS i OnProgress utrzymują je grzeczne i widoczne
  • Pobieranie hurtowe musi respektować warunki dostawcy: kafelki OpenStreetMap służą tylko do interaktywnego przeglądania

Community czyta foldery kafelków z/x/y i zachowuje CacheFolder każdej warstwy. Pobieranie kafelków oraz pliki MBTiles i PMTiles należą do pakietu offline.

Przeczytaj temat pomocy

Kafelki i dane mapy Tylko zarejestrowana

Cały region w jednym pliku PMTiles

Archiwum PMTiles zawiera kompletną piramidę kafelków w jednym pliku, który kopiujesz na laptopa lub umieszczasz na dowolnym statycznym serwerze WWW, bez serwera kafelków do uruchamiania. sgcMaps czyta archiwum z pliku lokalnego lub bezpośrednio z serwera WWW za pomocą żądań HTTP range i trzyma przeczytane katalogi w pamięci podręcznej, dzięki czemu przez sieć przesyłane są tylko widoczne kafelki.

  • mtsPMTiles dla archiwów rastrowych PNG i JPEG, mtsVectorPMTiles dla archiwów Mapbox Vector Tile
  • TileSourcePath przyjmuje nazwę pliku lub adres URL http albo https
  • TsgcMapTileSource_PMTiles podaje zakres powiększenia, granice, środek i metadane archiwum
  • PMTiles w wersji 3; archiwa z kafelkami WebP są zgłaszane jako nieobsługiwane
  • Od Delphi XE2 oraz w zarejestrowanym pakiecie esegece.sgcMaps dla .NET

PMTiles należy do pakietu offline, tak jak MBTiles, więc jest w edycji Zarejestrowanej, a nie w bezpłatnej edycji Community.

Przeczytaj temat pomocy

Znaczniki, kształty i geometria

Umieść swoje dane na mapie, zachowaj ich czytelność na każdym poziomie powiększenia i wykonaj stojące za nimi obliczenia.

Znaczniki, kształty i geometria

Tysiące znaczników, nadal czytelnych

Flota, sieć sklepów czy siatka czujników szybko zamienia się w chmurę nakładających się pinezek. Włącz grupowanie, a pobliskie znaczniki łączą się w jedną ponumerowaną bańkę, która ponownie się rozdziela przy powiększaniu, przeliczana na każdym poziomie powiększenia. Każdy znacznik ma własne okno, podpowiedź i ikonę, a kliknięcia, przeciągnięcia i kliknięcia grup docierają jako zdarzenia, więc mapa staje się częścią twojego procesu, a nie obrazkiem. Znaczniki można dodawać w pętli z twoich danych lub importować z plików GeoJSON, GPX i KML, a ClearMarkers resetuje je jednym wywołaniem.

  • MarkerOptions.Clustering z GridSize, MinClusterSize i ZoomOnClick
  • PopupText, TooltipText i IconBitmap dla każdego znacznika
  • Zdarzenia OnMarkerClick, OnClusterClick i OnMarkerDragEnd
  • BeginUpdate i EndUpdate wokół ładowania zbiorczego; FitToMarkers obejmuje je wszystkie
  • MarkerAtScreen i ClusterAtScreen testują trafienie w dowolny piksel
Przeczytaj temat pomocy
Trasy, strefy i mapy cieplne na jednej mapie

Znaczniki, kształty i geometria

Trasy, strefy i mapy cieplne na jednej mapie

Większość ekranów z mapą potrzebuje czegoś więcej niż pinezek: zaplanowanej trasy dostawy, obszaru obsługiwanego przez magazyn, promienia wokół klienta, skąd pochodzą zamówienia. sgcMaps rysuje to wszystko jako elementy modelu mapy, w tych samych współrzędnych co twoje znaczniki. Kształty można uczynić edytowalnymi, więc użytkownik może przeciągać wierzchołki strefy myszą, a twój kod dostaje informację, gdy edycja się kończy. Etykiety umieszczają tekst we współrzędnej z własną czcionką, kolorem i tłem, co utrzymuje nazwy stref i numery tras przy mapie.

  • AddPolyline z liniami Dashed i Geodesic
  • AddPolygon z AddHole, a także AddRectangle, AddCircle (RadiusMeters) i AddLabel
  • Kształty Editable zgłaszają zmiany przez OnShapeEdited
  • TsgcMapHeatmap przyjmuje punkty z wagami przez AddPoint oraz MaxIntensity
Przeczytaj temat pomocy

Znaczniki, kształty i geometria

Matematyka geograficzna jest już napisana

Czy ten pojazd jest wewnątrz strefy? Jak daleko jest najbliższy magazyn? Który punkt trasy jest najbliższy klientowi? Te pytania pojawiają się w każdej aplikacji z mapą i łatwo w nich o błąd blisko biegunów lub na dużych dystansach. Jednostka geometrii odpowiada na nie na sferze WGS84 zwykłymi funkcjami, które możesz też wywołać z usługi, bez żadnej mapy. Funkcje przyjmują zwykłe rekordy TsgcMapCoord, a sgcMapLatLonToPixel i sgcMapPixelToLatLon przeliczają między współrzędnymi ekranu i świata, gdy rysujesz własne nakładki.

  • sgcMapDistance w metrach, sgcMapInitialBearing i sgcMapDestinationPoint
  • sgcMapPointInPolygon i sgcMapPointInPolygonWithHoles dla geofence
  • sgcMapNearestPointOnPolyline przyciąga pozycję do trasy
  • sgcMapGeodesicInterpolate i sgcMapSimplify dla gładkich, lekkich linii
Przeczytaj temat pomocy

Wyszukiwanie i wyznaczanie tras

Znajdź adresy i zaplanuj trasy z dostawcami online albo w pełni offline, bez klucza API.

Wyszukiwanie i wyznaczanie tras

Geokodowanie, wskazówki dojazdu i miejsca za jednym API

Każdy dostawca geokodowania i tras ma własny format REST, klucze i dziwactwa. Komponenty usług je ukrywają: wybierasz dostawcę, ustawiasz klucz, gdy jest potrzebny, i wywołujesz te same metody, synchronicznie lub asynchronicznie. Przejście od jednego dostawcy do drugiego to zmiana właściwości, a nie przepisywanie, a wyniki wracają jako obiekty Delphi gotowe do umieszczenia na mapie. Każdy komponent dziedziczy po klasie bazowej TsgcMapService, więc ApiKey, UserAgent i LastError działają tak samo dla każdego dostawcy.

  • TsgcMapGeocoder: Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService i Geoapify
  • TsgcMapDirections: OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox i Geoapify
  • TsgcMapPlaces do autouzupełniania adresów, TsgcMapElevation i TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync i SuggestAsync utrzymują responsywność interfejsu; błędy docierają w OnError
Przeczytaj temat pomocy

Wyszukiwanie i wyznaczanie tras Tylko zarejestrowana

Trasy i wyszukiwanie adresów bez internetu i bez klucza

Routing online zawodzi dokładnie tam, gdzie używa się aplikacji terenowych, a każde żądanie może kosztować. Router offline wylicza trasy samochodowe, rowerowe i piesze na urządzeniu z grafu tras zbudowanego raz z wyciągu OpenStreetMap. Geokoder offline wyszukuje nazwy miejsc i odwrotnie geokoduje kliknięcie z indeksu GeoNames w SQLite. Oba działają bez sieci, bez konta i bez opłat za żądanie. Router i geokoder to komponenty niewizualne, więc usługa Windows lub narzędzie konsolowe może odpowiadać na żądania tras i adresów bez mapy na ekranie.

  • TsgcMapOfflineRouter odpowiada na GetRoute z grafu zbudowanego przez TsgcMapRouteGraphBuilder z .osm.pbf
  • sgcMapAddRouteToPolylines rysuje wynik na mapie
  • TsgcMapOfflineGeocoder z ReverseGeocode, na indeksie z TsgcMapGeoIndexBuilder
  • Konstruktory grafu i indeksu w wierszu poleceń są w folderze Tools

Community korzysta z usług online; router i geokoder offline należą do pakietu offline.

Przeczytaj temat pomocy

Pliki, renderowanie i urządzenia mobilne

Wymieniaj dane geograficzne z innymi narzędziami, renderuj mapy tam, gdzie nie ma ekranu, i zabierz mapę na telefon, do okna WPF lub okna Avalonia.

Pliki, renderowanie i urządzenia mobilne

Otwieraj pliki, które użytkownicy już mają

Klienci przysyłają ślady z zegarka GPS, strefy narysowane w narzędziu GIS lub KML z innego systemu. sgcMaps czyta i zapisuje GeoJSON, GPX i KML prosto do modelu mapy, więc import to jedno wywołanie, a eksport drugie. Ślady GPX przychodzą ze statystykami i można je kolorować według wysokości, a czytnik strumieniowy przechodzi przez duże wyciągi OpenStreetMap bez wczytywania ich do pamięci. Eksporty używają tych samych funkcji w odwrotnym kierunku, więc strefy narysowane przez użytkownika na mapie można zapisać jako GeoJSON lub KML i otworzyć w innych narzędziach GIS.

  • sgcMapLoadGeoJSONFile i sgcMapSaveGeoJSONFile, od Delphi XE6
  • TsgcMapGPX z TrackStats (TotalAscent, TotalDescent) i ColorByElevation
  • sgcMapLoadKMLFile i sgcMapSaveKMLFile
  • Czytnik OpenStreetMap przetwarza strumieniowo pliki .osm.pbf i XML przez zdarzenia
  • sgcMapGeoJSONAsText zwraca GeoJSON mapy jako ciąg znaków
Przeczytaj temat pomocy

Pliki, renderowanie i urządzenia mobilne

Shapefile i WKT z dowolnego GIS

Publiczne dane geograficzne wciąż są dostarczane jako shapefile Esri, a przestrzenne bazy danych wymieniają geometrię jako Well Known Text. TsgcMapShapefile importuje punkty, linie i wielokąty shapefile wraz z jego tabelą atrybutów, dzięki czemu każdy znacznik może pokazać rekord, z którego pochodzi. WKT oraz EWKT zapisywany przez PostGIS są odczytywane i zapisywane, co jest najprostszym sposobem przeniesienia strefy między mapą a kolumną geometrii w bazie danych.

  • LoadFromFile czyta plik .shp wraz z plikami .shx, .dbf, .prj i .cpg; OnItem otrzymuje każdy wiersz atrybutów, a LabelField ustawia tekst okienka punktów
  • Plik .prj w stopniach WGS84, ETRS89 lub NAD83 albo w Web Mercator jest wczytywany bezpośrednio, a plik bez .prj jest czytany jako WGS84
  • Każde inne odwzorowanie powoduje wyraźny błąd, chyba że Twoja procedura OnTransform przekształci współrzędne
  • sgcMapLoadWKT i TsgcMapWKT czytają POINT, LINESTRING, POLYGON, ich formy MULTI oraz GEOMETRYCOLLECTION, w stopniach lub metrach Web Mercator, a AsText zapisuje mapę z powrotem
  • We wszystkich wydaniach od Delphi 7; w .NET ShapefileFormat i WktFormat z wywołaniem zwrotnym Transform
Przeczytaj temat pomocy
Renderuj obrazy map na serwerze

Pliki, renderowanie i urządzenia mobilne

Renderuj obrazy map na serwerze

Dokumenty dostawy z trasą, dzienny raport z dzisiejszymi incydentami, miniatura dla strony internetowej: wiele map nigdy nie jest pokazywanych w oknie. Ta sama kontrolka renderuje do PNG lub bitmapy bez bycia widoczną, z aplikacji konsolowej lub usługi Windows. Możesz sprawdzić, czy dotarł każdy kafelek, zanim wyślesz obraz, więc wolny serwer kafelków nigdy nie skończy jako szary kwadrat w dokumencie klienta. Renderowanie po stronie serwera używa tych samych warstw, znaczników i kształtów co kontrolka interaktywna, więc mapa zaprojektowana na ekranie wygląda tak samo w PNG.

  • SaveToPNG i SaveToPNGFile, od Delphi 2009
  • RenderToBitmap i SaveToBMPFile dla twojego własnego potoku
  • LastRenderMissingTiles zgłasza kafelki, które nie były dostępne
  • W .NET MapView.RenderToPng działa też w systemie Linux
Przeczytaj temat pomocy

Pliki, renderowanie i urządzenia mobilne

Ta sama mapa na komputerze i urządzeniu mobilnym

Dyspozytor planuje na komputerze z Windows, a kierowca podąża za planem na telefonie. TsgcFMXMap przynosi ten sam model, warstwy, znaczniki, kształty i usługi do FireMonkey w systemach Windows, macOS, iOS i Android, więc kod napisany dla mapy VCL przenosi się dalej. TsgcMapLocation odczytuje pozycję urządzenia, więc mapa może się wyśrodkować na użytkowniku i za nim podążać. Bufor kafelków każdej warstwy działa też na urządzeniach mobilnych, więc telefon nadal pokazuje obszary, które już wczytał.

  • TsgcFMXMap w systemie Windows od Delphi XE6 oraz w systemach macOS, iOS i Android od Delphi 10.4 (macOS ARM od Delphi 11), z tymi samymi kolekcjami co TsgcVCLMap
  • TsgcMapLocation w systemach Windows, Android, iOS i macOS
  • Demo FMX pokazuje kafelki, znaczniki i lokalizację w jednym formularzu, a demo FMX Mobile jest przygotowane dla telefonów i tabletów
  • Niezależny od frameworka rdzeń kompiluje się także dla Linuksa 64 bit od Delphi 10.4, dla aplikacji konsolowych i serwerowych, które używają źródeł kafelków, formatów plików i danych offline
  • Trzy pakiety uruchomieniowe, sgcMaps (rdzeń), sgcMapsVCL i sgcMapsFMX, dzięki czemu aplikacja FireMonkey nie ładuje już pakietów VCL
  • Minimalne wersje Delphi dla poszczególnych funkcji są wymienione w temacie o instalacji
Przeczytaj temat pomocy

Pliki, renderowanie i urządzenia mobilne

Mapa w WPF i Avalonia, zadeklarowana w XAML

TsgcWpfMap i TsgcAvaloniaMap wnoszą silnik map .NET do WPF i Avalonia 12 wraz z funkcjami kontrolki WinForms: przesuwanie i powiększanie myszą, dotykiem i klawiaturą, warstwy, znaczniki, kształty, drukowanie, eksport do PDF i UI Automation. Warstwy i znaczniki deklaruje się w XAML z prefiksem sgc, a kolekcja Twojego modelu widoku staje się znacznikami przez ItemsSource, więc dodanie sklepu do kolekcji umieszcza go na mapie, a przeciągnięcie jego znacznika zapisuje nową pozycję z powrotem.

  • LatitudeMember, LongitudeMember, TooltipMember, PopupMember, ColorMember i DraggableMember odwzorowują Twoje właściwości na znaczniki
  • SelectedItem, Zoom, Bearing, CenterLatitude i CenterLongitude wiążą się dwukierunkowo
  • Kolory zapisuje się w XAML jako tekst #AARRGGBB lub #RRGGBB
  • NuGet esegece.sgcMaps.Wpf (net8.0-windows do net10.0-windows) i esegece.sgcMaps.Avalonia (net8.0 do net10.0), oba z bezpłatnym pakietem Community
  • Projekty WpfDemo i AvaloniaDemo pokazują to samo okno w obu frameworkach
Przeczytaj temat pomocy

Dostępność

UI Automation dla czytników ekranu i klawiatura, bez konfiguracji.

Dostępność

Mapa dostępna z klawiatury i udostępniana UI Automation

sgcMaps udostępnia mapę Microsoft UI Automation wraz z tekstem alternatywnym, znaczniki jako listę i warstwy jako listę, w której każda warstwa zgłasza, czy jest widoczna. Do znaczników można dotrzeć klawiaturą.

  • Strzałki przesuwają mapę, klawisze plus i minus przybliżają i oddalają, a Home wraca do widoku początkowego
  • Page Up i Page Down przechodzą do poprzedniego lub następnego znacznika, Enter aktywuje znacznik z fokusem, a Esc usuwa fokus ze znacznika
  • Mapa pokazuje widoczny wskaźnik fokusu, gdy ma fokus
  • W .NET kontrolki mapy WinForms, WPF i Avalonia udostępniają tę samą strukturę UI Automation i tę samą obsługę klawiatury

Dostępność jest domyślnie włączona w każdej edycji, łącznie z bezpłatną edycją Community, w VCL w każdej wersji Delphi i C++Builder od Delphi 7 do Delphi 13, w FireMonkey w systemie Windows oraz w WinForms, WPF i Avalonia. W Delphi i C++Builder właściwości AccessibleName i AccessibleDescription ustawiają nazwę i opis udostępniane UI Automation, a w .NET robią to standardowa nazwa dostępności i tekst pomocy każdego frameworka. Zobacz raporty zgodności dotyczące dostępności, które nie obejmują jeszcze nowych kontrolek mapy WPF i Avalonia. Obraz mapy jest opisany wyłącznie przez swój środek i powiększenie, a renderer mapy nie stosuje wysokiego kontrastu systemu Windows, ponieważ obraz mapy to kafelki od dostawcy.

Przeczytaj temat pomocy

Zobacz sgcMaps w akcji

sgcMaps w demach pakietu sgcUI: kompletne aplikacje działające offline na wbudowanych danych symulowanych.

Kto buduje z sgcMaps

Serwis terenowy i logistyka

Technicy i kierowcy potrzebują mapy tam, gdzie zasięg jest słaby. Przygotuj kafelki regionu z wyprzedzeniem, wylicz trasy samochodowe na urządzeniu routerem offline i znajdź adresy geokoderem offline. Po powrocie do biura ten sam kod rysuje zaplanowane trasy i strefy dostaw oraz renderuje PNG każdej trasy do dokumentu dostawy.

  • Działa offline
  • Routing offline
  • Trasy i strefy
  • Obrazy map
Uruchom demo OfflineServices

Śledzenie zasobów i floty

Centrum kontroli obserwuje setki pojazdów, maszyn lub czujników naraz. Grupowanie utrzymuje czytelność mapy na poziomie kraju i rozdziela się na pojedyncze pinezki na poziomie ulicy. Mapa cieplna pokazuje, gdzie koncentrują się incydenty, kontrole geofence z punktem w wielokącie zgłaszają alerty, a zdarzenia kliknięcia znacznika otwierają rekord zasobu w twoich własnych formularzach.

  • Grupowanie
  • Mapy cieplne
  • Geometria
  • Zdarzenia
Uruchom demo MapFeatures

Lekki GIS i aplikacje outdoorowe

Narzędzia do planowania, aplikacje sportowe i oprogramowanie geodezyjne żyją na śladach GPX, warstwach KML i strefach GeoJSON. sgcMaps importuje i eksportuje wszystkie trzy, pokazuje statystyki śladów i kolory wysokości oraz umieszcza wynik na topograficznej mapie bazowej. Kontrolka FireMonkey zabiera te same funkcje na tablet lub telefon w terenie. Statystyki śladu podają łączne podejście i zejście trasy na pierwszy rzut oka.

  • GeoJSON, GPX, KML i shapefile
  • Kafelki topograficzne
  • FireMonkey
Uruchom demo OfflineMap

Mapa w kilku linijkach

To samo API w Delphi, C++ Builder i C#: kafelki OpenStreetMap, trzy znaczniki, linia geodezyjna i promień, dopasowane do znaczników i zapisane jako PNG.

Mapa VCL zbudowana w kodzie: buforowana warstwa OpenStreetMap, znaczniki, linia geodezyjna i okrąg, a potem PNG z wynikiem.

uses
  SysUtils, Controls, Graphics, sgcMaps_Classes, sgcMaps_Providers,
  sgcMaps_Geometry, sgcMaps_VCL;

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG.
procedure BuildMap(aOwner: TWinControl);
var
  oMap: TsgcVCLMap;
  oLayer: TsgcMapLayer;
  oLine: TsgcMapPolyline;
begin
  oMap := TsgcVCLMap.Create(aOwner);
  oMap.Parent := aOwner;
  oMap.Align := alClient;

  oLayer := oMap.Layers.Add;
  oLayer.Name := 'OpenStreetMap';
  oLayer.Provider := mtpOpenStreetMap;
  sgcMapApplyProvider(oLayer);
  oLayer.CacheFolder := ExtractFilePath(ParamStr(0)) + 'tile_cache';

  oMap.AddMarker(48.8566, 2.3522, 'Paris', 'France');
  oMap.AddMarker(52.5200, 13.4050, 'Berlin', 'Germany');
  oMap.AddMarker(41.9028, 12.4964, 'Rome', 'Italy');
  oMap.MarkerOptions.Clustering.Enabled := True;

  oLine := oMap.AddPolyline;
  oLine.Geodesic := True;
  oLine.Dashed := True;
  oLine.Color := clRed;
  oLine.AddPoint(48.8566, 2.3522);
  oLine.AddPoint(52.5200, 13.4050);

  oMap.AddCircle(48.8566, 2.3522, 300000).FillOpacity := 0.15;
  oMap.FitToMarkers(40);
  oMap.AddLabel(50.7, 8, Format('Paris to Berlin: %.0f km',
    [sgcMapDistance(48.8566, 2.3522, 52.52, 13.405) / 1000]));
  oMap.SaveToPNG('europe.png', 1200, 800);
end;

Przeczytaj temat pomocy →

Ta sama mapa w C++ Builder z wygenerowanymi nagłówkami sgcMaps.

#include <vcl.h>
#include "sgcMaps_Classes.hpp"
#include "sgcMaps_Providers.hpp"
#include "sgcMaps_Geometry.hpp"
#include "sgcMaps_VCL.hpp"

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG.
void BuildMap(TWinControl *aOwner)
{
  TsgcVCLMap *oMap = new TsgcVCLMap(aOwner);
  oMap->Parent = aOwner;
  oMap->Align = alClient;

  TsgcMapLayer *oLayer = oMap->Layers->Add();
  oLayer->Name = "OpenStreetMap";
  oLayer->Provider = mtpOpenStreetMap;
  sgcMapApplyProvider(oLayer);
  oLayer->CacheFolder = ExtractFilePath(ParamStr(0)) + "tile_cache";

  oMap->AddMarker(48.8566, 2.3522, "Paris", "France");
  oMap->AddMarker(52.5200, 13.4050, "Berlin", "Germany");
  oMap->AddMarker(41.9028, 12.4964, "Rome", "Italy");
  oMap->MarkerOptions->Clustering->Enabled = true;

  TsgcMapPolyline *oLine = oMap->AddPolyline();
  oLine->Geodesic = true;
  oLine->Dashed = true;
  oLine->Color = clRed;
  oLine->AddPoint(48.8566, 2.3522);
  oLine->AddPoint(52.5200, 13.4050);

  oMap->AddCircle(48.8566, 2.3522, 300000)->FillOpacity = 0.15;
  oMap->FitToMarkers(40);
  int iKm = (int)(sgcMapDistance(48.8566, 2.3522, 52.52, 13.405) / 1000);
  oMap->AddLabel(50.7, 8, "Paris to Berlin: " + IntToStr(iKm) + " km");
  oMap->SaveToPNG("europe.png", 1200, 800, false);
}

Przeczytaj temat pomocy →

MapView bez interfejsu renderuje tę samą mapę do pliku PNG, w systemie Windows lub Linux.

using System;
using System.IO;
using esegece.sgcMaps;
using esegece.sgcMaps.Rendering;

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG (no window).
public static class EuropeMap
{
    public static void Render()
    {
        var oMap = new MapView();

        Layer oLayer = oMap.Layers.Add();
        oLayer.Name = "OpenStreetMap";
        oLayer.Provider = TileProvider.OpenStreetMap;
        MapProviders.ApplyProvider(oLayer);
        oLayer.CacheFolder = Path.Combine(AppContext.BaseDirectory, "tile_cache");

        oMap.AddMarker(48.8566, 2.3522, "Paris", "France");
        oMap.AddMarker(52.5200, 13.4050, "Berlin", "Germany");
        oMap.AddMarker(41.9028, 12.4964, "Rome", "Italy");
        oMap.MarkerOptions.Clustering.Enabled = true;

        Polyline oLine = oMap.AddPolyline();
        oLine.Geodesic = true;
        oLine.Dashed = true;
        oLine.Color = MapColors.Red;
        oLine.AddPoint(48.8566, 2.3522);
        oLine.AddPoint(52.5200, 13.4050);

        oMap.AddCircle(48.8566, 2.3522, 300000).FillOpacity = 0.15;
        oMap.FitToMarkers(40);
        double vKm = MapGeometry.Distance(48.8566, 2.3522, 52.52, 13.405) / 1000;
        oMap.AddLabel(50.7, 8, $"Paris to Berlin: {vKm:F0} km");
        oMap.RenderToPng("europe.png", 1200, 800);
    }
}
dotnet add package esegece.sgcMaps.Rendering

Przeczytaj temat pomocy →

Warstwy WMS, shapefile i mapa w WPF

Nakładka WMS i import shapefile wraz z atrybutami w Delphi oraz okno WPF z mapą, warstwą i znacznikiem zadeklarowanymi w XAML.

Przezroczysta nakładka WMS z własną pamięcią podręczną kafelków oraz shapefile, w którym parki są wypełniane na zielono na podstawie tabeli atrybutów. Oba działają we wszystkich wydaniach.

uses
  Classes, SysUtils, Graphics, sgcMaps_Classes, sgcMaps_VCL, sgcMaps_Shapefile;

procedure TForm2.AddWMSLayer;
var
  oLayer: TsgcMapLayer;
begin
  // an overlay drawn by a WMS server
  oLayer := sgcVCLMap1.Layers.Add;
  oLayer.Name := 'Land use';
  oLayer.TileSourceType := mtsWMS;
  oLayer.URLTemplate := 'https://maps.example.com/geoserver/wms';
  oLayer.WMS.Layers := 'landuse,rivers';
  oLayer.WMS.Version := mwv130;
  oLayer.WMS.ImageFormat := 'image/png';
  oLayer.WMS.Transparent := True;
  oLayer.IsBaseLayer := False;
  oLayer.Opacity := 0.7;
  oLayer.CacheFolder := ExtractFilePath(ParamStr(0)) + 'cache\landuse';
end;

procedure TForm2.ImportLandUse;
var
  oShp: TsgcMapShapefile;
begin
  oShp := TsgcMapShapefile.Create;
  try
    // points get the NAME field as popup text (the field must exist)
    oShp.LabelField := 'NAME';
    oShp.OnItem := ShapefileItem;
    // reads landuse.shx, .dbf, .prj and .cpg next to the .shp
    oShp.LoadFromFile('C:\Data\landuse.shp', sgcVCLMap1.Markers,
      sgcVCLMap1.Polylines, sgcVCLMap1.Polygons);
    memoLog.Lines.Add(Format('%d records, %d skipped, fields: %s',
      [oShp.RecordCount, oShp.SkippedCount, oShp.Fields.CommaText]));
  finally
    oShp.Free;
  end;
end;

procedure TForm2.ShapefileItem(Sender: TObject; aRecord: Integer;
  aAttributes: TStrings; aItem: TCollectionItem);
begin
  // aAttributes holds the .dbf row as Name=Value lines
  if (aItem is TsgcMapPolygon) and (aAttributes.Values['USE'] = 'PARK') then
    TsgcMapPolygon(aItem).FillColor := clGreen;
end;

Przeczytaj temat WMS → Przeczytaj temat shapefile →

Warstwy i znaczniki TsgcWpfMap deklaruje się w XAML z prefiksem sgc. Kod za formularzem dodaje pamięć podręczną kafelków, linię i trzy zdarzenia.

<Window x:Class="MapQuickStartWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sgc="https://www.esegece.com/sgcui"
        Title="sgcMaps WPF Quick Start" Width="1000" Height="700">
  <sgc:TsgcWpfMap x:Name="MainMap" CenterLatitude="40.4168" CenterLongitude="-3.7038" Zoom="14">
    <sgc:TsgcWpfMap.Layers>
      <sgc:Layer Name="OpenStreetMap" Provider="OpenStreetMap" />
    </sgc:TsgcWpfMap.Layers>
    <sgc:TsgcWpfMap.Markers>
      <sgc:Marker Latitude="40.4168" Longitude="-3.7038" PopupText="Puerta del Sol"
                  TooltipText="Drag me" Draggable="True" Color="#FFE53935" />
    </sgc:TsgcWpfMap.Markers>
  </sgc:TsgcWpfMap>
</Window>
using System;
using System.IO;
using System.Windows;
using esegece.sgcMaps;

namespace MapQuickStartWpf
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // cache the tiles of the layer declared in XAML
            MainMap.Layers[0].CacheFolder = Path.Combine(AppContext.BaseDirectory, "tile_cache");

            // a line from Puerta del Sol to Retiro Park
            Polyline line = MainMap.Map.AddPolyline();
            line.AddPoint(40.4168, -3.7038);
            line.AddPoint(40.4153, -3.6844);
            line.Color = MapColors.Blue;
            line.Width = 4;

            MainMap.MapClick += (s, e) => Title = $"Click at {e.Latitude:F5}, {e.Longitude:F5}";
            MainMap.MarkerDragEnd += (s, e) => Title = $"Dropped at {e.Item.Latitude:F5}, {e.Item.Longitude:F5}";
            MainMap.TileError += (s, e) => Title = $"Tile {e.Zoom}/{e.X}/{e.Y}: {e.Error}";
        }
    }
}
dotnet add package esegece.sgcMaps.Wpf

Przeczytaj temat pomocy →

Uruchom dema sgcMaps

Z sgcMaps dostarczanych jest jedenaście dem Delphi i osiem dem .NET. Nie ma projektów demo C++ Builder.

Tylko zarejestrowana OfflineMap

Foldery, MBTiles i kafelki online, znaczniki i kształty oraz import GeoJSON, GPX i KML.

MapFeatures

Dostawcy i klucze API, grupowanie znaczników, edycja kształtów, mapy cieplne i eksport obrazów.

Services

Wyszukiwanie miejsc, geokodowanie, wskazówki dojazdu, wysokość, strefy czasowe i lokalizacja urządzenia z dostawcami online. Delphi XE8 i nowsze.

Tylko zarejestrowana OfflineServices

Zbuduj indeks GeoNames i graf tras OpenStreetMap, a potem wyszukuj miejsca i wyznaczaj trasy samochodem, rowerem lub pieszo bez sieci.

StaticRender

StaticRender

Program konsolowy, który renderuje mapę do pliku PNG lub BMP bez okna.

FMX

Mapa FireMonkey z kafelkami, znacznikami i lokalizacją urządzenia, dla Windows, macOS, iOS i Android. Delphi XE6 i nowsze.

VectorTiles

VectorTiles

Serwer kafelków wektorowych rysowany wbudowanym stylem lub własnym plikiem stylu, z ostrymi etykietami na każdym poziomie powiększenia.

FMXMobile

Mapa FireMonkey stworzona dla telefonów i tabletów: przesuwanie jednym palcem, powiększanie gestem szczypania, duże przyciski powiększenia, Twoja pozycja z okręgiem dokładności i lista miejsc. Delphi 10.4 i nowsze.

OGCServices

Wczytuje dokument capabilities WMS lub WMTS z adresu URL lub pliku, wyświetla listę warstw i dodaje wybraną jako nakładkę na OpenStreetMap, z suwakiem przezroczystości. Delphi 2009 i nowsze.

Tylko zarejestrowana PMTiles

Otwiera rastrowe lub wektorowe archiwum PMTiles z pliku lub adresu URL, pokazuje jego nagłówek i metadane oraz dodaje je jako warstwę wyśrodkowaną na archiwum. Delphi XE2 i nowsze.

ShapefileWKT

Importuje shapefile wraz z tabelą atrybutów, pokazuje rekord klikniętego znacznika oraz importuje i eksportuje WKT.

WinFormsDemo

SgcMapControl .NET w oknie WinForms z dostawcami, znacznikami i kształtami.

WpfDemo

Mapa WPF zadeklarowana w XAML: warstwy bazowe i znaczniki w znaczniku, sklepy powiązane jako znaczniki przez ItemsSource, suwaki powiększenia i obrotu, drukowanie i eksport do PDF.

AvaloniaDemo

To samo okno z kontrolką mapy Avalonia 12 i skompilowanymi powiązaniami.

OgcServicesDemo

Kontrolka mapy WinForms z warstwą bazową OpenStreetMap i jedną nakładką z usługi WMS lub WMTS: wczytuje dokument capabilities z adresu URL lub pliku, wyświetla listę warstw, dodaje wybraną z suwakiem przezroczystości i pokazuje błędy kafelków.

Tylko zarejestrowana PMTilesDemo

Kontrolka mapy WinForms z warstwą z rastrowego lub wektorowego archiwum PMTiles, otwartego z pliku lub adresu URL, z nagłówkiem i metadanymi oraz mapą wyśrodkowaną na archiwum.

ShapefileWktDemo

Kontrolka mapy WinForms importująca shapefile wraz z tabelą atrybutów i rekordem klikniętego znacznika oraz import i eksport WKT nakładek.

Tylko zarejestrowana OfflineDemo

Pakiet offline .NET: kafelki, wyznaczanie tras i geokodowanie offline z lokalnych plików danych.

ConsoleRenderDemo

ConsoleRenderDemo

Konsola .NET, która renderuje mapę do PNG przez MapView bez interfejsu, w systemie Windows lub Linux.

Skompilowane dema

Gotowe do uruchomienia pliki wykonywalne każdego produktu sgcUI, nic nie trzeba instalować.

Pobierz sgcUI_bin.zip →

Przewodnik Getting Started

Pięć dem QuickStart dla Delphi (VCL) znajduje się w Demos\Maps\00.QuickStart. Przewodnik PDF omawia je krok po kroku: pierwsza mapa ze znacznikami, znaczniki i etykiety dodawane w kodzie, kształty, zdarzenia mapy oraz wyszukiwarka sklepów.

Pobierz przewodnik (PDF, po angielsku) →

Gdzie jest sgcMaps

sgcMaps jest częścią sgcUI Enterprise i jest też sprzedawany osobno. sgcMaps jest też zawarty w pakiecie All-Access.

Pojedynczy pakiet sgcMaps

€149 / programista, pełny kod źródłowy, 1 rok aktualizacji.

Kup sgcMaps → Zobacz cennik →

sgcUI Enterprise

Wszystkie produkty sgcUI (17), od €699.

Zobacz Enterprise →

Bezpłatna edycja .NET Community (NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community, esegece.sgcMaps.Wpf.Community, esegece.sgcMaps.Avalonia.Community) ma każdą funkcję oprócz pakietu offline. Pakiet esegece.sgcMaps.Offline jest tylko w edycji Zarejestrowanej. Projekt odwołuje się do pakietów Community albo Zarejestrowanych, nigdy do obu.

FunkcjaCommunity (bezpłatna)Zarejestrowana
Kontrolki mapy VCL, FireMonkey, WinForms, WPF i Avalonia✓✓
Dostawcy kafelków, serwery kafelków HTTP i wektorowych✓✓
Warstwy WMS i WMTS✓✓
Foldery kafelków z/x/y i bufor kafelków każdej warstwy✓✓
Znaczniki, grupowanie, kształty, etykiety i mapy cieplne✓✓
Funkcje geometrii✓✓
Import i eksport GeoJSON, GPX i KML✓✓
Import shapefile, import i eksport WKT✓✓
Geokodowanie online, wskazówki dojazdu, miejsca, wysokość i strefy czasowe✓✓
Renderowanie statyczne do PNG✓✓
Pobieranie kafelków dla pakietów offline−✓
Pliki MBTiles i PMTiles (rastrowe i wektorowe)−✓
Router offline i geokoder offline−✓

Obsługiwane frameworki i platformy

Komponenty w sgcMaps

TsgcVCLMap i TsgcFMXMap

Kontrolki mapy dla VCL i FireMonkey oraz kontrolka Lazarus LCL czytająca kafelki z dysku.

Kolekcje modelu

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels i Heatmaps, wspólne dla każdego frameworka.

Usługi online

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation i TsgcMapTimeZone.

Narzędzia offline

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder i TsgcMapTileDownloader.

Formaty GIS i usługi OGC

TsgcMapShapefile, TsgcMapWKT, TsgcMapWMSCapabilities, TsgcMapWMTSCapabilities i TsgcMapTileSource_PMTiles.

TsgcMapLocation i funkcje geometrii

Lokalizacja urządzenia oraz sgcMapDistance, azymut, punkt docelowy, interpolacja geodezyjna, punkt w wielokącie i upraszczanie linii.

Mapy .NET

SgcMapControl dla WinForms, TsgcWpfMap dla WPF, TsgcAvaloniaMap dla Avalonia 12 oraz MapView, silnik bez interfejsu renderujący do PNG, także w systemie Linux.

CelKomponentPlatformy
Delphi 7 do 13, VCLTsgcVCLMap i modelWin32, Win64 od XE2 oraz ARM64EC w Delphi 13
Delphi XE6 do 13, FireMonkeyTsgcFMXMapWindows od XE6; macOS, iOS i Android od Delphi 10.4 (macOS ARM od Delphi 11); lokalizacja urządzenia w systemach Windows, Android, iOS i macOS
Delphi 10.4 do 13, Linux 64 bitNiezależny od frameworka rdzeń, bez kontrolki mapyŹródła kafelków, usługi, formaty plików i dane offline w aplikacjach konsolowych i serwerowych
C++ Builder 2007 do 13TsgcVCLMap, TsgcFMXMap od XE6 i modelTylko Windows: Win32, Win64 od XE3 i Win64x w C++ Builder 13, z wygenerowanymi nagłówkami .hpp i bibliotekami statycznymi
LazarusKontrolka mapy LCLTylko kafelki z dysku, nie pobiera kafelków
.NET 8, 9 i 10SgcMapControl, TsgcWpfMap, TsgcAvaloniaMap, MapViewWinForms i WPF (net8.0-windows, net9.0-windows, net10.0-windows), Avalonia 12 (net8.0, net9.0, net10.0), PNG bez interfejsu w systemach Windows i Linux

Pakiety Delphi: sgcMaps zawiera niezależny od frameworka rdzeń, sgcMapsVCL mapę VCL, a sgcMapsFMX mapę FireMonkey, wraz z pakietami czasu projektowania dclsgcMaps i dclsgcMapsFMX. Projekt budowany z pakietami uruchomieniowymi, który wymienia sgcMaps, dodaje sgcMapsVCL lub sgcMapsFMX. Zobacz Pakiety i Platformy.

Najczęściej zadawane pytania

Nie. Kafelki, znaczniki i kształty są rysowane natywnie przez kontrolkę, więc nie ma widoku webowego, biblioteki JavaScript ani środowiska przeglądarki do wdrożenia.

Nie dla OpenStreetMap, OpenTopoMap i kafelków Esri, ani dla routera i geokodera offline. Kafelki MapTiler, Thunderforest i Stadia oraz komercyjni dostawcy geokodowania i tras wymagają twojego własnego klucza. Każdy dostawca ma własne warunki użytkowania, które twoja aplikacja musi respektować.

Tak. Kafelki mogą pochodzić z folderów z/x/y, bufora każdej warstwy, plików MBTiles lub archiwów PMTiles, trasy z TsgcMapOfflineRouter, a wyszukiwanie adresów z TsgcMapOfflineGeocoder. MBTiles, PMTiles, pobieranie kafelków oraz router i geokoder offline są częścią pakietu offline edycji Registered.

GeoJSON, GPX, KML i WKT z EWKT, do importu i eksportu, oraz shapefile Esri wraz z atrybutami do importu, ze statystykami śladów GPX i kolorami wysokości. Czytnik strumieniowy przetwarza też pliki OpenStreetMap .osm.pbf i XML, w ten sposób budowany jest graf tras offline. Zobacz Formaty plików, Shapefile i WKT.

Model, kontrolka VCL, shapefile i WKT działają od Delphi 7 i C++ Builder 2007. Niektóre funkcje mają wyższe minimum: wyjście PNG, serwery kafelków, WMS i WMTS od Delphi 2009, kafelki wektorowe, PMTiles i router offline od XE2, FireMonkey w systemie Windows i GeoJSON od XE6, MBTiles i geokoder offline od XE7, usługi online od XE8. FireMonkey w systemach macOS, iOS i Android oraz jednostki rdzenia w systemie Linux 64 bit wymagają Delphi 10.4 lub nowszego.

Tak. Warstwa z TileSourceType mtsWMS lub mtsWMTS pobiera swoje obrazy z usługi WMS 1.1.1 lub 1.3.0 albo z usługi WMTS w kodowaniu KVP lub REST, a czytniki capabilities konfigurują warstwę na podstawie opisu usługi. Mapa jest w układzie Web Mercator, więc warstwy WMS są żądane w EPSG:3857, a usługi WMTS wymagają zestawu macierzy kafelków Web Mercator. WMS i WMTS są we wszystkich wydaniach, także w Community. Zobacz WMS i WMTS.

Tak. TsgcWpfMap (NuGet esegece.sgcMaps.Wpf) i TsgcAvaloniaMap (esegece.sgcMaps.Avalonia, Avalonia 12) hostują ten sam silnik co SgcMapControl z WinForms. Warstwy i znaczniki można deklarować w XAML, znaczniki wiązać z kolekcją przez ItemsSource, a widok wiązać dwukierunkowo. Oba są także w bezpłatnej edycji Community. Zobacz Szybki start WPF i Szybki start Avalonia.

Projekty demo są tylko dla Delphi, ale komponenty instalują się w C++ Builder 2007 do 13 i działają tak samo. Zakładka C++ Builder w sekcji kodu powyżej pokazuje tę samą mapę zbudowaną z wygenerowanymi nagłówkami.

Tak. Edycja Community jest bezpłatna dla osób prywatnych i organizacji o rocznych przychodach brutto poniżej 1 mln EUR, zatrudniających nie więcej niż 5 programistów. Ma każdą funkcję oprócz pakietu offline. W .NET pakiety to esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community, esegece.sgcMaps.Wpf.Community i esegece.sgcMaps.Avalonia.Community. WMS, WMTS, shapefile, WKT oraz kontrolki WPF i Avalonia są także w Community. Większe organizacje potrzebują licencji Zarejestrowanej.

Pomoc sgcMaps

3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wypróbuj sgcMaps już dziś

Wersja próbna sgcUI zawiera sgcMaps z pakietem offline i każdy inny produkt sgcUI. Edycja .NET Community jest bezpłatna w NuGet.