Delphi, C++ Builder & .NET Parte di sgcUI

sgcMaps, mappe native per Delphi, C++ Builder & .NET

Metti una vera mappa nella tua applicazione senza un controllo browser e senza una riga di JavaScript. sgcMaps disegna da sé le tile raster e vettoriali, mostra migliaia di marcatori raggruppati, percorsi e zone, geocodifica gli indirizzi e continua a funzionare offline con tile locali e un router offline.

VCL, FireMonkey, Lazarus, WinFormsNessun controllo browser, nessun JavaScriptEdizione .NET Community gratuitaIncluso in sgcUI Enterprise
TsgcVCLMap che mostra il centro di Madrid da tile vettoriali con marcatori di posizione rossi e blu

Tutto ciò che serve a un'applicazione con mappe

Tredici funzionalità, ciascuna con l'API reale e l'argomento della guida che la descrive.

Tile e dati della mappa

Il controllo mappa disegna ogni tile da sé, da un server di tile, da una sorgente vettoriale o da file su disco.

Una vera mappa nel tuo form, senza browser dentro

Tile e dati della mappa

Una vera mappa nel tuo form, senza browser dentro

La maggior parte dei componenti mappa incapsula una web view e una libreria JavaScript, così la tua applicazione desktop finisce per distribuire un browser. sgcMaps no. TsgcVCLMap e TsgcFMXMap scaricano, memorizzano in cache e disegnano le tile sul proprio canvas, gestiscono lo zoom con la rotellina e il trascinamento per spostarsi, e generano normali eventi Delphi. La tua mappa è un controllo nativo come tutti gli altri: si ancora, segue il tema del form e si debugga come il resto del tuo codice. Non c'è nessun processo aggiuntivo da distribuire o da mettere in sicurezza, e la mappa si comporta allo stesso modo su ogni macchina dove gira la tua applicazione.

  • La collezione Layers contiene uno o più elementi TsgcMapLayer, ciascuno con il proprio TileSourceType
  • TsgcFMXMap funziona su Windows, macOS, iOS e Android da Delphi XE6
  • Un controllo Lazarus LCL mostra tile da disco
  • In .NET, SgcMapControl per WinForms e il MapView headless condividono lo stesso motore
  • Da destra a sinistra per arabo ed ebraico: i pulsanti di zoom, il selettore dei livelli, la bussola, la barra della scala e l'attribuzione passano sul lato opposto, mentre la mappa mantiene il suo orientamento geografico
Leggi l'argomento della guida
Scegli un provider di tile con una sola proprietà

Tile e dati della mappa

Scegli un provider di tile con una sola proprietà

Scegliere una mappa di base non dovrebbe significare leggere la documentazione di un server di tile. Imposta Provider su un livello e chiama sgcMapApplyProvider: il livello riceve il modello di URL, lo zoom massimo e il testo di attribuzione di quel provider. OpenStreetMap, OpenTopoMap, Esri World Imagery ed Esri World Street funzionano senza chiave. MapTiler, Thunderforest e Stadia richiedono la tua chiave API. Il tuo server di tile è a un modello di URL di distanza. Ogni livello ha il proprio provider, quindi un livello satellitare e uno stradale possono stare nella stessa mappa e l'utente passa dall'uno all'altro sulla mappa stessa.

  • Senza chiave: mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Con la tua chiave: mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom con URLTemplate legge qualsiasi server {z}/{x}/{y}
  • L'attribuzione del provider viene disegnata sulla mappa al posto tuo
  • ShowLayerSwitcher inserisce un pulsante dei livelli sulla mappa
Leggi l'argomento della guida
Tile vettoriali sempre nitide a qualsiasi dimensione

Tile e dati della mappa

Tile vettoriali sempre nitide a qualsiasi dimensione

Le tile raster si sfocano quando le ingrandisci, e ogni cambio di stile significa nuove immagini dal server. Con le tile vettoriali il controllo riceve la geometria e disegna da sé strade, acqua, edifici ed etichette, così il testo resta nitido sugli schermi ad alta densità e nelle immagini esportate. Punta un livello a un server di Mapbox Vector Tile e lascia vuoto VectorStyleFile per usare lo stile integrato, oppure carica un file di stile MapLibre o Mapbox GL per adattarlo al tuo marchio. I livelli vettoriali funzionano sia nel controllo VCL sia in quello FireMonkey.

  • mtsVectorHTTP legge un server di tile vettoriali, da Delphi XE2
  • mtsVectorMBTiles legge un file MBTiles vettoriale locale (pacchetto offline)
  • TsgcMapVectorStyle carica uno stile con LoadFromFile o LoadFromJSON
  • La decodifica e il disegno sono in TsgcMapTileSource_MVT, in puro codice Delphi
Leggi l'argomento della guida

Tile e dati della mappa Solo Registered

Continua a lavorare quando la rete non c'è

Un tecnico sul campo in un seminterrato, una nave in mare o la rete di un reparto produttivo non possono dipendere da un server di tile. sgcMaps legge le tile da disco esattamente come le legge dal web. Assegna a un livello una CacheFolder e ogni tile scaricata viene conservata per l'esecuzione successiva. Per un pacchetto offline completo, TsgcMapTileDownloader scarica in anticipo un'area e un intervallo di zoom in una cartella o in un file MBTiles.

  • mtsFolder legge una cartella z/x/y di tile PNG o JPEG
  • mtsMBTiles legge un file MBTiles raster, da Delphi XE7 (FireDAC SQLite)
  • CountTiles ti dice la dimensione di un download prima di avviarlo; DelayMS e OnProgress lo mantengono educato e visibile
  • I download di massa devono rispettare i termini del provider: le tile di OpenStreetMap sono solo per la visualizzazione interattiva

Community legge le cartelle di tile z/x/y e mantiene la CacheFolder per livello. Il downloader di tile e i file MBTiles fanno parte del pacchetto offline.

Leggi l'argomento della guida

Marcatori, forme e geometria

Metti sulla mappa i tuoi dati, mantienili leggibili a ogni livello di zoom e lascia fare i calcoli a sgcMaps.

Marcatori, forme e geometria

Migliaia di marcatori, ancora leggibili

Una flotta, una rete di negozi o una griglia di sensori diventano presto una nuvola di pin sovrapposti. Attiva il clustering e i marcatori vicini si fondono in una bolla numerata che si divide di nuovo quando l'utente ingrandisce, ricalcolata a ogni livello di zoom. Ogni marcatore ha il proprio popup, tooltip e icona, e clic, trascinamenti e clic sui cluster arrivano come eventi, così la mappa diventa parte del tuo flusso di lavoro invece di un'immagine. I marcatori si possono aggiungere in un ciclo dai tuoi dati o importare da file GeoJSON, GPX e KML, e ClearMarkers li azzera con una sola chiamata.

  • MarkerOptions.Clustering con GridSize, MinClusterSize e ZoomOnClick
  • PopupText, TooltipText e IconBitmap per ogni marcatore
  • Eventi OnMarkerClick, OnClusterClick e OnMarkerDragEnd
  • BeginUpdate e EndUpdate attorno ai caricamenti di massa; FitToMarkers li inquadra tutti
  • MarkerAtScreen e ClusterAtScreen eseguono l'hit test di qualsiasi pixel
Leggi l'argomento della guida
Percorsi, zone e heatmap su un'unica mappa

Marcatori, forme e geometria

Percorsi, zone e heatmap su un'unica mappa

La maggior parte delle schermate con mappa richiede più dei pin: il percorso di consegna pianificato, l'area servita da un deposito, un raggio attorno a un cliente, da dove arrivano gli ordini. sgcMaps disegna tutto questo come elementi del modello della mappa, con le stesse coordinate dei tuoi marcatori. Le forme possono essere rese modificabili, così un utente può trascinare i vertici di una zona con il mouse e il tuo codice viene avvisato quando la modifica termina. Le etichette posizionano il testo a una coordinata con font, colore e sfondo propri, il che mantiene i nomi delle zone e i numeri dei percorsi ancorati alla mappa.

  • AddPolyline con linee Dashed e Geodesic
  • AddPolygon con AddHole, più AddRectangle, AddCircle (RadiusMeters) e AddLabel
  • Le forme Editable segnalano le modifiche tramite OnShapeEdited
  • TsgcMapHeatmap accetta punti pesati con AddPoint e un MaxIntensity
Leggi l'argomento della guida

Marcatori, forme e geometria

La matematica geografica è già scritta

Questo veicolo è dentro la zona? Quanto dista il deposito più vicino? Quale punto del percorso è il più vicino al cliente? Queste domande saltano fuori in ogni applicazione con mappe ed è facile sbagliare vicino ai poli o su lunghe distanze. L'unit di geometria risponde sulla sfera WGS84 con semplici funzioni che puoi chiamare anche da un servizio senza alcuna mappa. Le funzioni accettano semplici record TsgcMapCoord, e sgcMapLatLonToPixel e sgcMapPixelToLatLon convertono tra coordinate dello schermo e del mondo quando disegni i tuoi overlay.

  • sgcMapDistance in metri, sgcMapInitialBearing e sgcMapDestinationPoint
  • sgcMapPointInPolygon e sgcMapPointInPolygonWithHoles per i geofence
  • sgcMapNearestPointOnPolyline aggancia una posizione a un percorso
  • sgcMapGeodesicInterpolate e sgcMapSimplify per linee morbide e leggere
Leggi l'argomento della guida

Ricerca e routing

Trova indirizzi e pianifica percorsi con provider online, oppure completamente offline senza chiave API.

Ricerca e routing

Geocodifica, indicazioni e luoghi dietro un'unica API

Ogni provider di geocodifica e routing ha il proprio formato REST, le proprie chiavi e le proprie stranezze. I componenti di servizio le nascondono: scegli un provider, imposti la tua chiave quando serve e chiami gli stessi metodi, in modo sincrono o asincrono. Passare da un provider a un altro è un cambio di proprietà, non una riscrittura, e i risultati tornano come oggetti Delphi pronti da mettere sulla mappa. Ogni componente condivide la classe base TsgcMapService, quindi ApiKey, UserAgent e LastError funzionano allo stesso modo con ogni provider.

  • TsgcMapGeocoder: Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService e Geoapify
  • TsgcMapDirections: OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox e Geoapify
  • TsgcMapPlaces per l'autocompletamento degli indirizzi, TsgcMapElevation e TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync e SuggestAsync mantengono reattiva l'interfaccia; gli errori arrivano in OnError
Leggi l'argomento della guida

Ricerca e routing Solo Registered

Percorsi e ricerca di indirizzi senza internet e senza chiave

Il routing online fallisce proprio dove si usano le app sul campo, e ogni richiesta può costare denaro. Il router offline calcola percorsi in auto, in bici e a piedi sul dispositivo da un grafo stradale costruito una volta da un estratto di OpenStreetMap. Il geocoder offline cerca nomi di luoghi e geocodifica al contrario un clic da un indice GeoNames in SQLite. Entrambi funzionano senza rete, senza account e senza costi per richiesta. Il router e il geocoder sono componenti non visuali, quindi un servizio Windows o uno strumento console può rispondere a richieste di percorsi e indirizzi senza alcuna mappa a schermo.

  • TsgcMapOfflineRouter risponde a GetRoute da un grafo costruito da TsgcMapRouteGraphBuilder a partire da .osm.pbf
  • sgcMapAddRouteToPolylines disegna il risultato sulla mappa
  • TsgcMapOfflineGeocoder con ReverseGeocode, su un indice creato da TsgcMapGeoIndexBuilder
  • I builder da riga di comando per il grafo e per l'indice sono nella cartella Tools

Community usa i servizi online; il router e il geocoder offline fanno parte del pacchetto offline.

Leggi l'argomento della guida

File, rendering e mobile

Scambia dati geografici con altri strumenti, genera mappe dove non c'è schermo e porta la mappa su un telefono.

File, rendering e mobile

Apri i file che i tuoi utenti hanno già

I clienti inviano tracce da un orologio GPS, zone disegnate in uno strumento GIS o un KML da un altro sistema. sgcMaps legge e scrive GeoJSON, GPX e KML direttamente nel modello della mappa, quindi un'importazione è una chiamata e un'esportazione è un'altra. Le tracce GPX arrivano con le loro statistiche e si possono colorare in base alla quota, e un lettore in streaming scorre grandi estratti di OpenStreetMap senza caricarli in memoria. Le esportazioni usano le stesse funzioni al contrario, quindi le zone che un utente ha disegnato sulla mappa si possono salvare come GeoJSON o KML e aprire in altri strumenti GIS.

  • sgcMapLoadGeoJSONFile e sgcMapSaveGeoJSONFile, da Delphi XE6
  • TsgcMapGPX con TrackStats (TotalAscent, TotalDescent) e ColorByElevation
  • sgcMapLoadKMLFile e sgcMapSaveKMLFile
  • Il lettore OpenStreetMap legge in streaming file .osm.pbf e XML tramite eventi
  • sgcMapGeoJSONAsText restituisce il GeoJSON della mappa come stringa
Leggi l'argomento della guida
Genera immagini di mappe su un server

File, rendering e mobile

Genera immagini di mappe su un server

Bolle di consegna con il percorso, un report giornaliero con gli incidenti di oggi, una miniatura per una pagina web: molte mappe non vengono mai mostrate in una finestra. Lo stesso controllo genera un PNG o una bitmap senza essere visibile, da un'applicazione console o da un servizio Windows. Puoi verificare se tutte le tile sono arrivate prima di inviare l'immagine, così un server di tile lento non finisce mai come un quadrato grigio in un documento per il cliente. Il rendering lato server usa gli stessi livelli, marcatori e forme del controllo interattivo, quindi una mappa progettata a schermo appare identica nel PNG.

  • SaveToPNG e SaveToPNGFile, da Delphi 2009
  • RenderToBitmap e SaveToBMPFile per la tua pipeline
  • LastRenderMissingTiles segnala le tile non disponibili
  • In .NET, MapView.RenderToPng funziona anche su Linux
Leggi l'argomento della guida

File, rendering e mobile

La stessa mappa su desktop e su mobile

Un operatore pianifica su un desktop Windows e l'autista segue il piano su un telefono. TsgcFMXMap porta lo stesso modello, livelli, marcatori, forme e servizi in FireMonkey su Windows, macOS, iOS e Android, quindi il codice scritto per la mappa VCL si riutilizza. TsgcMapLocation legge la posizione del dispositivo, così la mappa può centrarsi sull'utente e seguirlo. La cache delle tile per livello funziona anche su mobile, quindi un telefono continua a mostrare le aree già caricate.

  • TsgcFMXMap da Delphi XE6, con le stesse collezioni di TsgcVCLMap
  • TsgcMapLocation su Windows, Android, iOS e macOS
  • La demo FMX mostra tile, marcatori e posizione in un solo form
  • Le versioni minime di Delphi per ogni funzionalità sono elencate nell'argomento sull'installazione
Leggi l'argomento della guida

Accessibilità

UI Automation per screen reader e tastiera, senza alcuna configurazione.

Accessibilità

Una mappa raggiungibile con la tastiera ed esposta a UI Automation

sgcMaps espone la mappa a Microsoft UI Automation con un testo alternativo, i marcatori come elenco e i livelli come elenco, dove ogni livello indica se è visibile. I marcatori si possono raggiungere con la tastiera.

  • Le frecce spostano la mappa, i tasti più e meno fanno lo zoom e Home torna alla vista iniziale
  • PagÙp e PagÙgiù passano al marcatore precedente o successivo, Invio attiva il marcatore con il focus e Esc rimuove il focus dal marcatore
  • La mappa mostra un anello di focus visibile mentre ha il focus
  • In .NET, sgcMaps è un controllo WinForms, quindi la mappa è accessibile su WinForms

L'accessibilità è attiva per impostazione predefinita in tutte le edizioni, compresa l'edizione Community gratuita, su VCL in ogni versione di Delphi e C++Builder da Delphi 7 a Delphi 13, su FireMonkey su Windows e su WinForms. In Delphi e C++Builder, AccessibleName e AccessibleDescription impostano il nome e la descrizione esposti a UI Automation, e in .NET il nome accessibile e il testo della guida standard di ciascun framework fanno lo stesso. Vedi i report di conformità sull'accessibilità. L'immagine della mappa è descritta solo dal suo centro e dallo zoom, e il renderer della mappa non segue l'alto contrasto di Windows, perché l'immagine della mappa è composta da tile del provider.

Leggi l'argomento della guida

Guarda sgcMaps all'opera

sgcMaps nelle demo della suite sgcUI: applicazioni complete che funzionano offline con dati simulati integrati.

Chi sviluppa con sgcMaps

Assistenza sul campo e logistica

Tecnici e autisti hanno bisogno della mappa dove la copertura è scarsa. Prepara in anticipo le tile di una regione, calcola percorsi in auto sul dispositivo con il router offline e trova gli indirizzi con il geocoder offline. Di nuovo in ufficio, lo stesso codice disegna i percorsi pianificati e le zone di consegna e genera un PNG di ogni percorso per la bolla di consegna.

  • Funziona offline
  • Routing offline
  • Percorsi e zone
  • Immagini di mappe
Esegui la demo OfflineServices

Tracciamento di asset e flotte

Una sala di controllo osserva centinaia di veicoli, macchine o sensori contemporaneamente. Il clustering mantiene leggibile la mappa a livello nazionale e si divide in singoli pin a livello stradale. Una heatmap mostra dove si concentrano gli incidenti, i controlli geofence con point in polygon generano avvisi e gli eventi di clic sui marcatori aprono la scheda dell'asset nei tuoi form.

  • Clustering
  • Heatmap
  • Geometria
  • Eventi
Esegui la demo MapFeatures

GIS leggero e app outdoor

Strumenti di pianificazione, app sportive e software di rilievo vivono di tracce GPX, livelli KML e zone GeoJSON. sgcMaps importa ed esporta tutti e tre, mostra le statistiche delle tracce e i colori della quota, e mette il risultato su una mappa di base topografica. Il controllo FireMonkey porta le stesse funzionalità su un tablet o un telefono sul campo. Le statistiche delle tracce danno a colpo d'occhio la salita e la discesa totali di un percorso.

  • GeoJSON, GPX e KML
  • Tile topografiche
  • FireMonkey
Esegui la demo OfflineMap

Una mappa in poche righe

La stessa API in Delphi, C++ Builder e C#: tile OpenStreetMap, tre marcatori, una linea geodetica e un raggio, inquadrati sui marcatori e salvati come PNG.

Una mappa VCL costruita nel codice: un livello OpenStreetMap con cache, marcatori, una linea geodetica e un cerchio, poi un PNG del risultato.

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;

Leggi l'argomento della guida →

La stessa mappa in C++ Builder con gli header di sgcMaps generati.

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

Leggi l'argomento della guida →

Il MapView headless genera la stessa mappa in un file PNG, su Windows o 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

Leggi l'argomento della guida →

Esegui le demo di sgcMaps

Con sgcMaps sono incluse sette demo Delphi e tre demo .NET. Non ci sono progetti demo C++ Builder.

Solo Registered OfflineMap

Cartelle, MBTiles e tile online, marcatori e forme, più importazione di GeoJSON, GPX e KML.

MapFeatures

Provider e chiavi API, clustering dei marcatori, modifica delle forme, heatmap ed esportazione di immagini.

Services

Ricerca di luoghi, geocodifica, indicazioni, quota, fusi orari e posizione del dispositivo con i provider online. Delphi XE8 e successivi.

Solo Registered OfflineServices

Costruisci un indice GeoNames e un grafo stradale OpenStreetMap, poi cerca luoghi e calcola percorsi in auto, in bici o a piedi senza rete.

StaticRender

StaticRender

Un programma console che genera una mappa in un file PNG o BMP senza finestra.

FMX

La mappa FireMonkey con tile, marcatori e posizione del dispositivo, per Windows, macOS, iOS e Android. Delphi XE6 e successivi.

VectorTiles

VectorTiles

Un server di tile vettoriali disegnato con lo stile integrato o con un tuo file di stile, con etichette nitide a ogni zoom.

WinFormsDemo

Il SgcMapControl .NET in una finestra WinForms con provider, marcatori e forme.

Solo Registered OfflineDemo

Il pacchetto offline .NET: tile, routing e geocodifica offline da file di dati locali.

ConsoleRenderDemo

ConsoleRenderDemo

Una console .NET che genera una mappa in PNG con il MapView headless, su Windows o Linux.

Demo compilate

Eseguibili pronti all'uso di ogni prodotto sgcUI, senza nulla da installare.

Scarica sgcUI_bin.zip →

Dove è incluso sgcMaps

sgcMaps fa parte di sgcUI Enterprise ed è venduto anche separatamente. sgcMaps è incluso anche nel bundle All-Access.

sgcMaps come pacchetto singolo

€149 / sviluppatore, codice sorgente completo, 1 anno di aggiornamenti.

Acquista sgcMaps → Vedi i prezzi →

sgcUI Enterprise

Tutti i 14 prodotti sgcUI, da €699.

Vedi Enterprise →

L'edizione Community gratuita (installer Delphi e NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community) ha ogni funzionalità tranne il pacchetto offline. Il pacchetto esegece.sgcMaps.Offline è solo Registered. Un progetto fa riferimento ai pacchetti Community oppure a quelli Registered, mai a entrambi.

FunzionalitàCommunity (gratuita)Registered
Controlli mappa VCL, FireMonkey e WinForms✓✓
Provider di tile, server di tile HTTP e vettoriali✓✓
Cartelle di tile z/x/y e cache delle tile per livello✓✓
Marcatori, clustering, forme, etichette e heatmap✓✓
Funzioni di geometria✓✓
Importazione ed esportazione di GeoJSON, GPX e KML✓✓
Geocodifica online, indicazioni, luoghi, quota e fusi orari✓✓
Rendering statico in PNG✓✓
Downloader di tile per pacchetti offline−✓
File MBTiles (raster e vettoriali)−✓
Router offline e geocoder offline−✓

Framework e piattaforme supportati

Componenti di sgcMaps

TsgcVCLMap and TsgcFMXMap

I controlli mappa per VCL e FireMonkey, più un controllo Lazarus LCL che legge le tile da disco.

Collezioni del modello

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels e Heatmaps, condivise da ogni framework.

Servizi online

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation e TsgcMapTimeZone.

Strumenti offline

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder e TsgcMapTileDownloader.

TsgcMapLocation e funzioni di geometria

Posizione del dispositivo, e sgcMapDistance, direzione, punto di destinazione, interpolazione geodetica, point in polygon e semplificazione delle linee.

Mappe .NET

SgcMapControl per WinForms, e MapView, il motore headless che genera PNG, anche su Linux.

DestinazioneComponentePiattaforme
Da Delphi 7 a 13, VCLTsgcVCLMap e il modelloWin32, e Win64 da XE2
Da Delphi XE6 a 13, FireMonkeyTsgcFMXMapWindows, macOS, iOS e Android, posizione del dispositivo su Windows, Android, iOS e macOS
C++ Builder da 2007 a 13TsgcVCLMap e il modelloHeader .hpp generati e librerie statiche
LazarusControllo mappa LCLSolo tile da disco, non può scaricare tile
.NET 8, 9 e 10SgcMapControl, MapViewWinForms (net8.0-windows, net9.0-windows, net10.0-windows), PNG headless su Windows e Linux

Domande frequenti

No. Tile, marcatori e forme sono disegnati nativamente dal controllo, quindi non c'è nessuna web view, nessuna libreria JavaScript e nessun runtime del browser da distribuire.

Non per OpenStreetMap, OpenTopoMap e le tile Esri, e non per il router e il geocoder offline. Le tile di MapTiler, Thunderforest e Stadia, e i provider commerciali di geocodifica e routing, usano la tua chiave. Ogni provider ha i propri termini d'uso, che la tua applicazione deve rispettare.

Sì. Le tile possono provenire da cartelle z/x/y, da una cache per livello o da file MBTiles, i percorsi da TsgcMapOfflineRouter e la ricerca di indirizzi da TsgcMapOfflineGeocoder. MBTiles, il downloader di tile e il router e il geocoder offline fanno parte del pacchetto offline dell'edizione Registered.

GeoJSON, GPX e KML, per importazione ed esportazione, con statistiche delle tracce GPX e colori della quota. Un lettore in streaming elabora anche file OpenStreetMap .osm.pbf e XML, ed è così che si costruisce il grafo stradale offline. Vedi Formati di file.

Il modello e il controllo VCL funzionano da Delphi 7 e C++ Builder 2007. Alcune funzionalità richiedono una versione minima più alta: output PNG e server di tile da Delphi 2009, tile vettoriali e router offline da XE2, FireMonkey e GeoJSON da XE6, MBTiles e geocoder offline da XE7, servizi online da XE8.

I progetti demo sono solo Delphi, ma i componenti si installano in C++ Builder da 2007 a 13 e funzionano allo stesso modo. La scheda C++ Builder nella sezione di codice qui sopra mostra la stessa mappa costruita con gli header generati.

Sì. L'edizione Community è gratuita per privati e organizzazioni con un fatturato lordo annuo inferiore a 1 milione di EUR e non più di 5 sviluppatori. Ha ogni funzionalità tranne il pacchetto offline. In .NET i pacchetti sono esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community e esegece.sgcMaps.WinForms.Community. Le organizzazioni più grandi hanno bisogno di una licenza Registered.

Guida di sgcMaps

3,000+Sviluppatori
20+Anni
761+Componenti
30+Integrazioni API
5Piattaforme
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

Prova sgcMaps oggi

Il trial di sgcUI include sgcMaps con il pacchetto offline e ogni altro prodotto sgcUI. L'edizione .NET Community è gratuita su NuGet.