Delphi, C++ Builder & .NET Onderdeel van sgcUI

sgcMaps, native kaarten voor Delphi, C++ Builder & .NET

Zet een echte kaart in je toepassing zonder browsercontrol en zonder één regel JavaScript. sgcMaps tekent raster- en vectortiles zelf, toont duizenden geclusterde markers, routes en zones, geocodeert adressen en blijft offline werken met lokale tiles en een offline router.

VCL, FireMonkey, Lazarus, WinFormsGeen browsercontrol, geen JavaScriptGratis .NET Community-editieInbegrepen in sgcUI Enterprise
TsgcVCLMap toont het centrum van Madrid uit vectortiles met rode en blauwe locatiemarkers

Alles wat een kaarttoepassing nodig heeft

Dertien functies, elk met de echte API en het helponderwerp erachter.

Tiles en kaartgegevens

De kaartcontrol tekent elke tile zelf, vanaf een tileserver, een vectorbron of bestanden op schijf.

Een echte kaart in je formulier, zonder browser erin

Tiles en kaartgegevens

Een echte kaart in je formulier, zonder browser erin

De meeste kaartcomponenten verpakken een webview en een JavaScript-bibliotheek, waardoor je desktoptoepassing uiteindelijk een browser meelevert. sgcMaps niet. TsgcVCLMap en TsgcFMXMap downloaden, cachen en tekenen de tiles op hun eigen canvas, verwerken zoomen met het muiswiel en slepen om te pannen, en geven gewone Delphi-events. Je kaart is een native control zoals elke andere: hij dockt, volgt het thema van het formulier en debugt zoals de rest van je code. Er is geen extra proces om uit te rollen of te beveiligen, en de kaart gedraagt zich hetzelfde op elke machine waarop je toepassing draait.

  • De collectie Layers bevat een of meer TsgcMapLayer-items, elk met een eigen TileSourceType
  • TsgcFMXMap draait op Windows, macOS, iOS en Android vanaf Delphi XE6
  • Een Lazarus LCL-control toont tiles van schijf
  • In .NET delen SgcMapControl voor WinForms en de headless MapView één engine
  • Rechts naar links voor Arabisch en Hebreeuws: de zoomknoppen, laagwisselaar, kompas, schaalbalk en bronvermelding verhuizen naar de andere kant, terwijl de kaart zijn geografische oriëntatie behoudt
Het helponderwerp lezen
Kies een tileprovider met één eigenschap

Tiles en kaartgegevens

Kies een tileprovider met één eigenschap

Een basiskaart kiezen mag niet betekenen dat je de documentatie van een tileserver moet lezen. Stel Provider in op een laag en roep sgcMapApplyProvider aan: de laag krijgt het URL-sjabloon, het maximale zoomniveau en de bronvermelding van die provider. OpenStreetMap, OpenTopoMap, Esri World Imagery en Esri World Street werken zonder sleutel. MapTiler, Thunderforest en Stadia gebruiken je eigen API-sleutel. Je eigen tileserver is één URL-sjabloon verwijderd. Elke laag heeft zijn eigen provider, dus een satellietlaag en een straatlaag kunnen in dezelfde kaart zitten en de gebruiker schakelt er op de kaart zelf tussen.

  • Zonder sleutel: mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Met je sleutel: mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom met URLTemplate leest elke {z}/{x}/{y}-server
  • De bronvermelding van de provider wordt voor je op de kaart getekend
  • ShowLayerSwitcher zet een laagknop op de kaart
Het helponderwerp lezen
Vectortiles die scherp blijven op elk formaat

Tiles en kaartgegevens

Vectortiles die scherp blijven op elk formaat

Rastertiles worden wazig als je ze schaalt, en elke stijlwijziging betekent nieuwe afbeeldingen van de server. Bij vectortiles ontvangt de control de geometrie en tekent hij wegen, water, gebouwen en labels zelf, zodat tekst scherp blijft op high-DPI-schermen en in geëxporteerde afbeeldingen. Wijs een laag naar een Mapbox Vector Tile-server en laat VectorStyleFile leeg om de ingebouwde stijl te gebruiken, of laad een MapLibre- of Mapbox GL-stijlbestand om bij je huisstijl te passen. Vectorlagen werken in de VCL- en de FireMonkey-control.

  • mtsVectorHTTP leest een vectortileserver, vanaf Delphi XE2
  • mtsVectorMBTiles leest een lokaal vector-MBTiles-bestand (offlinepakket)
  • TsgcMapVectorStyle laadt een stijl met LoadFromFile of LoadFromJSON
  • Decoderen en tekenen zitten in TsgcMapTileSource_MVT, in gewone Delphi-code
Het helponderwerp lezen

Tiles en kaartgegevens Alleen geregistreerd

Blijf werken als het netwerk wegvalt

Een monteur in een kelder, een schip op zee of een fabrieksnetwerk kan niet afhankelijk zijn van een tileserver. sgcMaps leest tiles van schijf precies zoals van het web. Geef een laag een CacheFolder en elke tile die hij ophaalt, wordt bewaard voor de volgende keer. Voor een volledig offlinepakket haalt TsgcMapTileDownloader vooraf een gebied en een zoombereik op in een map of een MBTiles-bestand.

  • mtsFolder leest een z/x/y-map met PNG- of JPEG-tiles
  • mtsMBTiles leest een raster-MBTiles-bestand, vanaf Delphi XE7 (FireDAC SQLite)
  • CountTiles geeft de grootte van een download voordat je begint; DelayMS en OnProgress houden hem beleefd en zichtbaar
  • Bulkdownloads moeten de voorwaarden van de provider respecteren: OpenStreetMap-tiles zijn alleen voor interactief bekijken

Community leest z/x/y-tilemappen en houdt de CacheFolder per laag bij. De tiledownloader en MBTiles-bestanden horen bij het offlinepakket.

Het helponderwerp lezen

Markers, vormen en geometrie

Zet je eigen gegevens op de kaart, houd ze leesbaar op elk zoomniveau en reken ermee.

Markers, vormen en geometrie

Duizenden markers, nog steeds leesbaar

Een wagenpark, een winkelnetwerk of een sensorraster verandert snel in een wolk van overlappende spelden. Zet clustering aan en markers dichtbij elkaar smelten samen tot één genummerde bel die weer uiteenvalt als de gebruiker inzoomt, opnieuw berekend op elk zoomniveau. Elke marker heeft zijn eigen popup, tooltip en pictogram, en klikken, slepen en clusterklikken komen binnen als events, zodat de kaart onderdeel van je werkproces wordt in plaats van een plaatje. Markers kun je in een lus uit je gegevens toevoegen of importeren uit GeoJSON-, GPX- en KML-bestanden, en ClearMarkers zet ze met één aanroep terug.

  • MarkerOptions.Clustering met GridSize, MinClusterSize en ZoomOnClick
  • PopupText, TooltipText en IconBitmap per marker
  • De events OnMarkerClick, OnClusterClick en OnMarkerDragEnd
  • BeginUpdate en EndUpdate rond bulklaadacties; FitToMarkers toont ze allemaal
  • MarkerAtScreen en ClusterAtScreen doen een hittest op elke pixel
Het helponderwerp lezen
Routes, zones en heatmaps op één kaart

Markers, vormen en geometrie

Routes, zones en heatmaps op één kaart

De meeste kaartschermen hebben meer nodig dan spelden: de geplande bezorgroute, het gebied dat een depot bedient, een straal rond een klant, waar de bestellingen vandaan komen. sgcMaps tekent ze allemaal als items van het kaartmodel, in dezelfde coördinaten als je markers. Vormen kunnen bewerkbaar worden gemaakt, zodat een gebruiker de hoekpunten van een zone met de muis kan slepen en je code hoort wanneer de bewerking eindigt. Labels plaatsen tekst op een coördinaat met een eigen lettertype, kleur en achtergrond, zodat zonenamen en routenummers aan de kaart gekoppeld blijven.

  • AddPolyline met Dashed- en Geodesic-lijnen
  • AddPolygon met AddHole, plus AddRectangle, AddCircle (RadiusMeters) en AddLabel
  • Editable-vormen melden wijzigingen via OnShapeEdited
  • TsgcMapHeatmap neemt gewogen punten met AddPoint en een MaxIntensity
Het helponderwerp lezen

Markers, vormen en geometrie

De geowiskunde is al geschreven

Zit dit voertuig in de zone? Hoe ver is het dichtstbijzijnde depot? Welk punt van de route ligt het dichtst bij de klant? Deze vragen komen in elke kaarttoepassing voor en gaan makkelijk fout bij de polen of over lange afstanden. De geometrie-unit beantwoordt ze op de WGS84-bol met gewone functies die je ook vanuit een service zonder kaart kunt aanroepen. De functies nemen gewone TsgcMapCoord-records, en sgcMapLatLonToPixel en sgcMapPixelToLatLon rekenen om tussen scherm- en wereldcoördinaten als je eigen overlays tekent.

  • sgcMapDistance in meters, sgcMapInitialBearing en sgcMapDestinationPoint
  • sgcMapPointInPolygon en sgcMapPointInPolygonWithHoles voor geofences
  • sgcMapNearestPointOnPolyline snapt een positie naar een route
  • sgcMapGeodesicInterpolate en sgcMapSimplify voor vloeiende, lichte lijnen
Het helponderwerp lezen

Zoeken en routeren

Vind adressen en plan routes met online providers, of volledig offline zonder API-sleutel.

Zoeken en routeren

Geocodering, routebeschrijvingen en plaatsen achter één API

Elke geocodeer- en routeringsprovider heeft zijn eigen REST-formaat, sleutels en eigenaardigheden. De servicecomponenten verbergen die: je kiest een provider, stelt je sleutel in als die nodig is en roept dezelfde methoden aan, synchroon of async. Van provider wisselen is een eigenschap wijzigen, geen herschrijving, en resultaten komen terug als Delphi-objecten die klaar zijn om op de kaart te zetten. Elke component deelt de basisklasse TsgcMapService, dus ApiKey, UserAgent en LastError werken voor elke provider hetzelfde.

  • TsgcMapGeocoder: Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService en Geoapify
  • TsgcMapDirections: OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox en Geoapify
  • TsgcMapPlaces voor adresautocomplete, TsgcMapElevation en TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync en SuggestAsync houden de UI responsief; fouten komen binnen in OnError
Het helponderwerp lezen

Zoeken en routeren Alleen geregistreerd

Routes en adressen zoeken zonder internet en zonder sleutel

Online routering faalt precies waar veldapps worden gebruikt, en elk verzoek kan geld kosten. De offline router berekent auto-, fiets- en wandelroutes op het apparaat uit een routegraaf die één keer is gebouwd uit een OpenStreetMap-extract. De offline geocoder zoekt plaatsnamen en geocodeert een klik terug uit een GeoNames-index in SQLite. Beide draaien zonder netwerk, zonder account en zonder kosten per verzoek. De router en de geocoder zijn niet-visuele componenten, dus een Windows-service of een consoletool kan route- en adresverzoeken beantwoorden zonder kaart op het scherm.

  • TsgcMapOfflineRouter beantwoordt GetRoute uit een graaf die TsgcMapRouteGraphBuilder uit .osm.pbf heeft gebouwd
  • sgcMapAddRouteToPolylines tekent het resultaat op de kaart
  • TsgcMapOfflineGeocoder met ReverseGeocode, over een index van TsgcMapGeoIndexBuilder
  • Opdrachtregelbuilders voor de graaf en de index staan in de map Tools

Community gebruikt de onlineservices; de offline router en geocoder horen bij het offlinepakket.

Het helponderwerp lezen

Bestanden, renderen en mobiel

Wissel geodata uit met andere tools, render kaarten waar geen scherm is en neem de kaart mee naar een telefoon.

Bestanden, renderen en mobiel

Open de bestanden die je gebruikers al hebben

Klanten sturen tracks van een gps-horloge, zones getekend in een GIS-tool of een KML uit een ander systeem. sgcMaps leest en schrijft GeoJSON, GPX en KML rechtstreeks in het kaartmodel, dus een import is één aanroep en een export een andere. GPX-tracks komen met hun statistieken en kunnen op hoogte worden gekleurd, en een streamende lezer loopt door grote OpenStreetMap-extracten zonder ze in het geheugen te laden. Exports gebruiken dezelfde functies omgekeerd, zodat zones die een gebruiker op de kaart tekende, als GeoJSON of KML kunnen worden opgeslagen en in andere GIS-tools geopend.

  • sgcMapLoadGeoJSONFile en sgcMapSaveGeoJSONFile, vanaf Delphi XE6
  • TsgcMapGPX met TrackStats (TotalAscent, TotalDescent) en ColorByElevation
  • sgcMapLoadKMLFile en sgcMapSaveKMLFile
  • De OpenStreetMap-lezer streamt .osm.pbf- en XML-bestanden via events
  • sgcMapGeoJSONAsText geeft de GeoJSON van de kaart als string terug
Het helponderwerp lezen
Render kaartafbeeldingen op een server

Bestanden, renderen en mobiel

Render kaartafbeeldingen op een server

Vrachtbrieven met de route, een dagrapport met de incidenten van vandaag, een miniatuur voor een webpagina: veel kaarten worden nooit in een venster getoond. Dezelfde control rendert naar een PNG of een bitmap zonder zichtbaar te zijn, vanuit een consoletoepassing of een Windows-service. Je kunt controleren of elke tile is aangekomen voordat je de afbeelding verstuurt, zodat een trage tileserver nooit als grijs vierkant in een klantdocument belandt. Rendering op de server gebruikt dezelfde lagen, markers en vormen als de interactieve control, dus een kaart die op het scherm is ontworpen, ziet er in de PNG hetzelfde uit.

  • SaveToPNG en SaveToPNGFile, vanaf Delphi 2009
  • RenderToBitmap en SaveToBMPFile voor je eigen pipeline
  • LastRenderMissingTiles meldt tiles die niet beschikbaar waren
  • In .NET draait MapView.RenderToPng ook op Linux
Het helponderwerp lezen

Bestanden, renderen en mobiel

Dezelfde kaart op desktop en mobiel

Een planner werkt op een Windows-desktop en de chauffeur volgt het plan op een telefoon. TsgcFMXMap brengt hetzelfde model, dezelfde lagen, markers, vormen en services naar FireMonkey op Windows, macOS, iOS en Android, zodat de code die je voor de VCL-kaart schreef, overgaat. TsgcMapLocation leest de positie van het apparaat, zodat de kaart kan centreren op de gebruiker en hem kan volgen. De tilecache per laag werkt ook op mobiel, dus een telefoon blijft de gebieden tonen die hij al heeft geladen.

  • TsgcFMXMap vanaf Delphi XE6, met dezelfde collecties als TsgcVCLMap
  • TsgcMapLocation op Windows, Android, iOS en macOS
  • De FMX-demo toont tiles, markers en locatie in één formulier
  • Minimale Delphi-versies per functie staan in het installatieonderwerp
Het helponderwerp lezen

Toegankelijkheid

UI Automation voor schermlezers en het toetsenbord, zonder configuratie.

Toegankelijkheid

Een kaart die het toetsenbord kan bereiken en UI Automation aanbiedt

sgcMaps biedt de kaart aan Microsoft UI Automation aan met een tekstalternatief, de markeringen als lijst en de lagen als lijst, waarbij elke laag meldt of hij zichtbaar is. De markeringen zijn met het toetsenbord te bereiken.

  • Pijltoetsen verschuiven de kaart, de plus- en mintoetsen zoomen, en Home keert terug naar de beginweergave
  • Page Up en Page Down gaan naar de vorige of volgende markering, Enter activeert de markering met focus en Esc wist de markeringsfocus
  • De kaart toont een zichtbare focusring zolang hij de focus heeft
  • In .NET is sgcMaps een WinForms-besturingselement, dus de kaart is toegankelijk op WinForms

Toegankelijkheid staat standaard aan in elke editie, ook in de gratis Community-editie, op VCL in elke Delphi- en C++Builder-versie van Delphi 7 tot en met Delphi 13, op FireMonkey op Windows, en op WinForms. In Delphi en C++Builder stellen AccessibleName en AccessibleDescription de naam en de beschrijving in die aan UI Automation worden aangeboden, en in .NET doen de standaard toegankelijke naam en helptekst van elk framework hetzelfde. Zie de toegankelijkheidsrapporten. De kaartafbeelding wordt alleen beschreven met het midden en de zoom, en de kaartrenderer volgt Windows hoog contrast niet, omdat de kaartafbeelding tegelbeeld van de provider is.

Het helponderwerp lezen

Zie sgcMaps in actie

sgcMaps in de sgcUI suite-demo's: complete applicaties die offline draaien met ingebouwde gesimuleerde gegevens.

Wie bouwt er met sgcMaps

Buitendienst en logistiek

Monteurs en chauffeurs hebben de kaart nodig waar de dekking slecht is. Bereid de tiles van een regio vooraf voor, bereken autoroutes op het apparaat met de offline router en vind adressen met de offline geocoder. Terug op kantoor tekent dezelfde code de geplande routes en bezorgzones en rendert een PNG van elke route voor de vrachtbrief.

  • Werkt offline
  • Offline routering
  • Routes en zones
  • Kaartafbeeldingen
Start de OfflineServices-demo

Assets en wagenpark volgen

Een controlekamer houdt honderden voertuigen, machines of sensoren tegelijk in de gaten. Clustering houdt de kaart leesbaar op landniveau en splitst op straatniveau uit in losse spelden. Een heatmap toont waar incidenten zich concentreren, geofencecontroles met punt-in-polygoon geven alarmen, en klikevents op markers openen het record van de asset in je eigen formulieren.

  • Clustering
  • Heatmaps
  • Geometrie
  • Events
Start de MapFeatures-demo

Lichte GIS- en outdoor-apps

Planningstools, sportapps en opmetingssoftware leven van GPX-tracks, KML-lagen en GeoJSON-zones. sgcMaps importeert en exporteert alle drie, toont trackstatistieken en hoogtekleuren en zet het resultaat op een topografische basiskaart. De FireMonkey-control brengt dezelfde functies naar een tablet of telefoon in het veld. Trackstatistieken geven in één oogopslag de totale stijging en daling van een route.

  • GeoJSON, GPX en KML
  • Topografische tiles
  • FireMonkey
Start de OfflineMap-demo

Een kaart in een paar regels

Dezelfde API in Delphi, C++ Builder en C#: OpenStreetMap-tiles, drie markers, een geodetische lijn en een straal, aangepast aan de markers en opgeslagen als PNG.

Een VCL-kaart in code gebouwd: een gecachete OpenStreetMap-laag, markers, een geodetische lijn en een cirkel, daarna een PNG van het resultaat.

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;

Het helponderwerp lezen →

Dezelfde kaart in C++ Builder met de gegenereerde sgcMaps-headers.

#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);
}

Het helponderwerp lezen →

De headless MapView rendert dezelfde kaart naar een PNG-bestand, op Windows of 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

Het helponderwerp lezen →

Probeer de sgcMaps-demo's uit

Bij sgcMaps worden zeven Delphi-demo's en drie .NET-demo's geleverd. Er zijn geen C++ Builder-demoprojecten.

Alleen geregistreerd OfflineMap

Map-, MBTiles- en online tiles, markers en vormen, plus import van GeoJSON, GPX en KML.

MapFeatures

Providers en API-sleutels, markerclustering, vormen bewerken, heatmaps en afbeeldingsexport.

Services

Plaatsen zoeken, geocodering, routebeschrijvingen, hoogte, tijdzones en apparaatlocatie met de onlineproviders. Delphi XE8 en later.

Alleen geregistreerd OfflineServices

Bouw een GeoNames-index en een OpenStreetMap-routegraaf, zoek daarna plaatsen en routeer met auto, fiets of te voet zonder netwerk.

StaticRender

StaticRender

Een consoleprogramma dat een kaart zonder venster naar een PNG- of BMP-bestand rendert.

FMX

De FireMonkey-kaart met tiles, markers en apparaatlocatie, voor Windows, macOS, iOS en Android. Delphi XE6 en later.

VectorTiles

VectorTiles

Een vectortileserver getekend met de ingebouwde stijl of een eigen stijlbestand, met scherpe labels op elk zoomniveau.

WinFormsDemo

De .NET-SgcMapControl in een WinForms-venster met providers, markers en vormen.

Alleen geregistreerd OfflineDemo

Het .NET-offlinepakket: offline tiles, routering en geocodering uit lokale gegevensbestanden.

ConsoleRenderDemo

ConsoleRenderDemo

Een .NET-console die een kaart naar PNG rendert met de headless MapView, op Windows of Linux.

Gecompileerde demo's

Direct uitvoerbare programma's van elk sgcUI-product, zonder installatie.

sgcUI_bin.zip downloaden →

Waar sgcMaps in zit

sgcMaps is onderdeel van sgcUI Enterprise en wordt ook los verkocht. sgcMaps zit ook in de All-Access-bundel.

sgcMaps los pakket

€149 / ontwikkelaar, volledige broncode, 1 jaar updates.

sgcMaps kopen → Prijzen bekijken →

sgcUI Enterprise

Alle 14 sgcUI-producten, vanaf €699.

Enterprise bekijken →

De gratis Community-editie (Delphi-installatieprogramma en NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community) heeft elke functie behalve het offlinepakket. Het pakket esegece.sgcMaps.Offline is alleen Registered. Een project verwijst naar de Community- of de Registered-pakketten, nooit naar beide.

FunctieCommunity (gratis)Geregistreerd
VCL-, FireMonkey- en WinForms-kaartcontrols✓✓
Tileproviders, HTTP- en vectortileservers✓✓
z/x/y-tilemappen en de tilecache per laag✓✓
Markers, clustering, vormen, labels en heatmaps✓✓
Geometriefuncties✓✓
Import en export van GeoJSON, GPX en KML✓✓
Online geocodering, routebeschrijvingen, plaatsen, hoogte en tijdzones✓✓
Statisch renderen naar PNG✓✓
Tiledownloader voor offlinepakketten−✓
MBTiles-bestanden (raster en vector)−✓
Offline router en offline geocoder−✓

Ondersteunde frameworks en platformen

Componenten in sgcMaps

TsgcVCLMap en TsgcFMXMap

De kaartcontrols voor VCL en FireMonkey, plus een Lazarus LCL-control die tiles van schijf leest.

Modelcollecties

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels en Heatmaps, gedeeld door elk framework.

Onlineservices

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation and TsgcMapTimeZone.

Offlinetools

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder and TsgcMapTileDownloader.

TsgcMapLocation en geometriehulpen

Apparaatlocatie, en sgcMapDistance, richting, bestemmingspunt, geodetische interpolatie, punt in polygoon en lijnvereenvoudiging.

.NET-kaarten

SgcMapControl voor WinForms, en MapView, de headless engine die naar PNG rendert, ook op Linux.

DoelComponentPlatformen
Delphi 7 tot 13, VCLTsgcVCLMap en het modelWin32, en Win64 vanaf XE2
Delphi XE6 tot 13, FireMonkeyTsgcFMXMapWindows, macOS, iOS en Android, apparaatlocatie op Windows, Android, iOS en macOS
C++ Builder 2007 tot 13TsgcVCLMap en het modelGegenereerde .hpp-headers en statische bibliotheken
LazarusLCL-kaartcontrolAlleen tiles van schijf, het kan geen tiles downloaden
.NET 8, 9 en 10SgcMapControl, MapViewWinForms (net8.0-windows, net9.0-windows, net10.0-windows), headless PNG op Windows en Linux

Veelgestelde vragen

Nee. De tiles, markers en vormen worden native door de control getekend, dus er is geen webview, geen JavaScript-bibliotheek en geen browserruntime om uit te rollen.

Niet voor OpenStreetMap, OpenTopoMap en de Esri-tiles, en niet voor de offline router en geocoder. MapTiler-, Thunderforest- en Stadia-tiles en de commerciële geocodeer- en routeringsproviders gebruiken je eigen sleutel. Elke provider heeft zijn eigen gebruiksvoorwaarden, die je toepassing moet respecteren.

Ja. Tiles kunnen uit z/x/y-mappen, een cache per laag of MBTiles-bestanden komen, routes van TsgcMapOfflineRouter en adreszoekopdrachten van TsgcMapOfflineGeocoder. MBTiles, de tiledownloader en de offline router en geocoder maken deel uit van het offlinepakket van de Registered-editie.

GeoJSON, GPX en KML, voor import en export, met GPX-trackstatistieken en hoogtekleuren. Een streamende lezer verwerkt ook OpenStreetMap .osm.pbf- en XML-bestanden, waarmee de offline routegraaf wordt gebouwd. Zie Bestandsformaten.

Het model en de VCL-control werken vanaf Delphi 7 en C++ Builder 2007. Sommige functies hebben een hoger minimum: PNG-uitvoer en tileservers vanaf Delphi 2009, vectortiles en de offline router vanaf XE2, FireMonkey en GeoJSON vanaf XE6, MBTiles en de offline geocoder vanaf XE7, onlineservices vanaf XE8.

De demoprojecten zijn alleen voor Delphi, maar de componenten installeren in C++ Builder 2007 tot 13 en werken hetzelfde. Het tabblad C++ Builder in de codesectie hierboven toont dezelfde kaart gebouwd met de gegenereerde headers.

Ja. De Community-editie is gratis voor particulieren en organisaties met minder dan EUR 1M brutojaaromzet en niet meer dan 5 ontwikkelaars. Ze heeft elke functie behalve het offlinepakket. Op .NET zijn de pakketten esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community en esegece.sgcMaps.WinForms.Community. Grotere organisaties hebben een Registered-licentie nodig.

sgcMaps help

3,000+Ontwikkelaars
20+Jaar
761+Componenten
30+API-integraties
5Platformen
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Probeer sgcMaps vandaag

De sgcUI-proefversie bevat sgcMaps met het offlinepakket en alle andere sgcUI-producten. De .NET Community-editie is gratis op NuGet.