Delphi, C++ Builder & .NET Fait partie de sgcUI

sgcMaps, cartes natives pour Delphi, C++ Builder & .NET

Mets une vraie carte dans ton application sans contrôle navigateur ni ligne de JavaScript. sgcMaps dessine lui-même les tuiles raster et vectorielles, affiche des milliers de marqueurs regroupés, des itinéraires et des zones, géocode des adresses et continue de fonctionner hors ligne avec des tuiles locales et un calculateur d'itinéraires hors ligne.

VCL, FireMonkey, Lazarus, WinFormsPas de contrôle navigateur, pas de JavaScriptÉdition .NET Community gratuiteInclus dans sgcUI Enterprise
TsgcVCLMap affichant le centre de Madrid à partir de tuiles vectorielles avec des marqueurs de position rouges et bleus

Tout ce dont une application cartographique a besoin

Treize fonctionnalités, chacune avec l'API réelle et la rubrique d'aide correspondante.

Tuiles et données cartographiques

Le contrôle de carte dessine lui-même chaque tuile, depuis un serveur de tuiles, une source vectorielle ou des fichiers sur le disque.

Une vraie carte dans ta fiche, sans navigateur à l'intérieur

Tuiles et données cartographiques

Une vraie carte dans ta fiche, sans navigateur à l'intérieur

La plupart des composants de carte encapsulent une vue web et une bibliothèque JavaScript, et ton application de bureau finit par embarquer un navigateur. Pas sgcMaps. TsgcVCLMap et TsgcFMXMap téléchargent, mettent en cache et dessinent les tuiles sur leur propre canevas, gèrent le zoom à la molette et le déplacement par glisser, et déclenchent des événements Delphi normaux. Ta carte est un contrôle natif comme un autre : elle s'ancre, elle suit le thème de la fiche et elle se débogue comme le reste de ton code. Il n'y a aucun processus supplémentaire à déployer ni à sécuriser, et la carte se comporte de la même façon sur chaque machine où ton application s'exécute.

  • La collection Layers contient un ou plusieurs éléments TsgcMapLayer, chacun avec son propre TileSourceType
  • TsgcFMXMap fonctionne sous Windows, macOS, iOS et Android à partir de Delphi XE6
  • Un contrôle Lazarus LCL affiche des tuiles depuis le disque
  • En .NET, SgcMapControl pour WinForms et le MapView sans interface partagent un seul moteur
  • De droite à gauche pour l'arabe et l'hébreu : les boutons de zoom, le sélecteur de couches, la boussole, l'échelle et l'attribution passent du côté opposé, tandis que la carte garde son orientation géographique
Lire la rubrique d'aide
Choisis un fournisseur de tuiles avec une seule propriété

Tuiles et données cartographiques

Choisis un fournisseur de tuiles avec une seule propriété

Choisir un fond de carte ne devrait pas obliger à lire la documentation d'un serveur de tuiles. Définis Provider sur une couche et appelle sgcMapApplyProvider : la couche reçoit le modèle d'URL, le zoom maximal et le texte d'attribution de ce fournisseur. OpenStreetMap, OpenTopoMap, Esri World Imagery et Esri World Street fonctionnent sans clé. MapTiler, Thunderforest et Stadia demandent ta propre clé d'API. Ton propre serveur de tuiles n'est qu'un modèle d'URL plus loin. Chaque couche a son propre fournisseur, donc une couche satellite et une couche plan peuvent coexister dans la même carte et l'utilisateur passe de l'une à l'autre sur la carte elle-même.

  • Sans clé : mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Avec ta clé : mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom avec URLTemplate lit n'importe quel serveur {z}/{x}/{y}
  • L'attribution du fournisseur est dessinée sur la carte pour toi
  • ShowLayerSwitcher place un bouton de couches sur la carte
Lire la rubrique d'aide
Des tuiles vectorielles qui restent nettes à toutes les tailles

Tuiles et données cartographiques

Des tuiles vectorielles qui restent nettes à toutes les tailles

Les tuiles raster deviennent floues quand on les agrandit, et chaque changement de style demande de nouvelles images au serveur. Avec les tuiles vectorielles, le contrôle reçoit la géométrie et dessine lui-même routes, eau, bâtiments et étiquettes, donc le texte reste net sur les écrans haute résolution et dans les images exportées. Pointe une couche vers un serveur de tuiles vectorielles Mapbox, laisse VectorStyleFile vide pour utiliser le style intégré, ou charge un fichier de style MapLibre ou Mapbox GL pour t'accorder à ta marque. Les couches vectorielles fonctionnent aussi bien dans le contrôle VCL que dans celui de FireMonkey.

  • mtsVectorHTTP lit un serveur de tuiles vectorielles, à partir de Delphi XE2
  • mtsVectorMBTiles lit un fichier MBTiles vectoriel local (pack hors ligne)
  • TsgcMapVectorStyle charge un style avec LoadFromFile ou LoadFromJSON
  • Le décodage et le dessin se trouvent dans TsgcMapTileSource_MVT, en code Delphi pur
Lire la rubrique d'aide

Tuiles et données cartographiques Enregistrée uniquement

Continue de travailler quand le réseau a disparu

Un technicien de terrain dans un sous-sol, un navire en mer ou un réseau d'atelier ne peuvent pas dépendre d'un serveur de tuiles. sgcMaps lit les tuiles depuis le disque exactement comme depuis le web. Donne un CacheFolder à une couche et chaque tuile qu'elle récupère est conservée pour la prochaine exécution. Pour un pack hors ligne complet, TsgcMapTileDownloader récupère à l'avance une zone et une plage de zoom dans un dossier ou un fichier MBTiles.

  • mtsFolder lit un dossier z/x/y de tuiles PNG ou JPEG
  • mtsMBTiles lit un fichier MBTiles raster, à partir de Delphi XE7 (FireDAC SQLite)
  • CountTiles indique la taille d'un téléchargement avant de le lancer ; DelayMS et OnProgress le gardent poli et visible
  • Les téléchargements en masse doivent respecter les conditions du fournisseur : les tuiles OpenStreetMap sont réservées à la consultation interactive

Community lit les dossiers de tuiles z/x/y et conserve le CacheFolder par couche. Le téléchargeur de tuiles et les fichiers MBTiles font partie du pack hors ligne.

Lire la rubrique d'aide

Marqueurs, formes et géométrie

Place tes propres données sur la carte, garde-les lisibles à chaque niveau de zoom et fais les calculs qui vont avec.

Marqueurs, formes et géométrie

Des milliers de marqueurs, toujours lisibles

Une flotte, un réseau de magasins ou un parc de capteurs se transforme vite en nuage d'épingles qui se chevauchent. Active le regroupement et les marqueurs proches fusionnent en une bulle numérotée qui se sépare de nouveau quand l'utilisateur zoome, recalculée à chaque niveau de zoom. Chaque marqueur porte sa propre bulle d'info, son infobulle et son icône, et les clics, glissements et clics sur un groupe arrivent sous forme d'événements, donc la carte fait partie de ton flux de travail au lieu d'être une image. Les marqueurs peuvent être ajoutés dans une boucle à partir de tes données ou importés depuis des fichiers GeoJSON, GPX et KML, et ClearMarkers les réinitialise en un appel.

  • MarkerOptions.Clustering avec GridSize, MinClusterSize et ZoomOnClick
  • PopupText, TooltipText et IconBitmap par marqueur
  • Événements OnMarkerClick, OnClusterClick et OnMarkerDragEnd
  • BeginUpdate et EndUpdate autour des chargements en masse ; FitToMarkers les cadre tous
  • MarkerAtScreen et ClusterAtScreen testent n'importe quel pixel
Lire la rubrique d'aide
Itinéraires, zones et cartes de chaleur sur une même carte

Marqueurs, formes et géométrie

Itinéraires, zones et cartes de chaleur sur une même carte

La plupart des écrans cartographiques ont besoin de plus que des épingles : l'itinéraire de livraison prévu, la zone desservie par un dépôt, un rayon autour d'un client, l'origine des commandes. sgcMaps dessine tout cela comme des éléments du modèle de carte, dans les mêmes coordonnées que tes marqueurs. Les formes peuvent être rendues modifiables, pour qu'un utilisateur déplace à la souris les sommets d'une zone et que ton code soit prévenu à la fin de la modification. Les étiquettes placent du texte à une coordonnée avec leur propre police, couleur et fond, ce qui garde les noms de zones et les numéros d'itinéraires attachés à la carte.

  • AddPolyline avec des lignes Dashed et Geodesic
  • AddPolygon avec AddHole, plus AddRectangle, AddCircle (RadiusMeters) et AddLabel
  • Les formes Editable signalent les changements via OnShapeEdited
  • TsgcMapHeatmap prend des points pondérés avec AddPoint et un MaxIntensity
Lire la rubrique d'aide

Marqueurs, formes et géométrie

Les calculs géographiques sont déjà écrits

Ce véhicule est-il dans la zone ? À quelle distance se trouve le dépôt le plus proche ? Quel point de l'itinéraire est le plus proche du client ? Ces questions reviennent dans toute application cartographique et il est facile de se tromper près des pôles ou sur de longues distances. L'unité de géométrie y répond sur la sphère WGS84 avec des fonctions simples que tu peux aussi appeler depuis un service, sans aucune carte. Les fonctions prennent de simples enregistrements TsgcMapCoord, et sgcMapLatLonToPixel et sgcMapPixelToLatLon convertissent entre coordonnées d'écran et coordonnées du monde quand tu dessines tes propres surcouches.

  • sgcMapDistance en mètres, sgcMapInitialBearing et sgcMapDestinationPoint
  • sgcMapPointInPolygon et sgcMapPointInPolygonWithHoles pour les géorepérages
  • sgcMapNearestPointOnPolyline aimante une position sur un itinéraire
  • sgcMapGeodesicInterpolate et sgcMapSimplify pour des lignes lisses et légères
Lire la rubrique d'aide

Recherche et itinéraires

Trouve des adresses et planifie des itinéraires avec des fournisseurs en ligne, ou entièrement hors ligne, sans clé d'API.

Recherche et itinéraires

Géocodage, itinéraires et lieux derrière une seule API

Chaque fournisseur de géocodage et d'itinéraires a son propre format REST, ses clés et ses particularités. Les composants de service les cachent : tu choisis un fournisseur, tu définis ta clé quand il en demande une et tu appelles les mêmes méthodes, en synchrone ou en asynchrone. Passer d'un fournisseur à un autre est un changement de propriété, pas une réécriture, et les résultats reviennent sous forme d'objets Delphi prêts à être placés sur la carte. Tous les composants partagent la classe de base TsgcMapService, donc ApiKey, UserAgent et LastError fonctionnent de la même façon pour chaque fournisseur.

  • TsgcMapGeocoder : Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService et Geoapify
  • TsgcMapDirections : OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox et Geoapify
  • TsgcMapPlaces pour l'autocomplétion d'adresses, TsgcMapElevation et TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync et SuggestAsync gardent l'interface réactive ; les erreurs arrivent dans OnError
Lire la rubrique d'aide

Recherche et itinéraires Enregistrée uniquement

Itinéraires et recherche d'adresses sans internet et sans clé

Le calcul d'itinéraires en ligne échoue exactement là où les applications de terrain sont utilisées, et chaque requête peut coûter de l'argent. Le calculateur hors ligne calcule sur l'appareil des itinéraires en voiture, à vélo et à pied à partir d'un graphe routier construit une seule fois depuis un extrait OpenStreetMap. Le géocodeur hors ligne recherche des noms de lieux et géocode à l'inverse un clic à partir d'un index GeoNames dans SQLite. Tous deux fonctionnent sans réseau, sans compte et sans frais par requête. Le calculateur et le géocodeur sont des composants non visuels, donc un service Windows ou un outil console peut répondre à des demandes d'itinéraires et d'adresses sans aucune carte à l'écran.

  • TsgcMapOfflineRouter répond à GetRoute à partir d'un graphe construit par TsgcMapRouteGraphBuilder depuis un .osm.pbf
  • sgcMapAddRouteToPolylines dessine le résultat sur la carte
  • TsgcMapOfflineGeocoder avec ReverseGeocode, sur un index créé par TsgcMapGeoIndexBuilder
  • Des outils en ligne de commande pour construire le graphe et l'index se trouvent dans le dossier Tools

Community utilise les services en ligne ; le calculateur d'itinéraires et le géocodeur hors ligne font partie du pack hors ligne.

Lire la rubrique d'aide

Fichiers, rendu et mobile

Échange des données géographiques avec d'autres outils, génère des cartes là où il n'y a pas d'écran et emporte la carte sur un téléphone.

Fichiers, rendu et mobile

Ouvre les fichiers que tes utilisateurs ont déjà

Les clients envoient des traces d'une montre GPS, des zones dessinées dans un outil SIG ou un KML provenant d'un autre système. sgcMaps lit et écrit GeoJSON, GPX et KML directement dans le modèle de carte, donc un import est un appel et un export en est un autre. Les traces GPX arrivent avec leurs statistiques et peuvent être colorées selon l'altitude, et un lecteur en flux parcourt de gros extraits OpenStreetMap sans les charger en mémoire. Les exports utilisent les mêmes fonctions en sens inverse, donc les zones qu'un utilisateur a dessinées sur la carte peuvent être enregistrées en GeoJSON ou KML et ouvertes dans d'autres outils SIG.

  • sgcMapLoadGeoJSONFile et sgcMapSaveGeoJSONFile, à partir de Delphi XE6
  • TsgcMapGPX avec TrackStats (TotalAscent, TotalDescent) et ColorByElevation
  • sgcMapLoadKMLFile et sgcMapSaveKMLFile
  • Le lecteur OpenStreetMap traite les fichiers .osm.pbf et XML en flux via des événements
  • sgcMapGeoJSONAsText renvoie le GeoJSON de la carte sous forme de chaîne
Lire la rubrique d'aide
Génère des images de cartes sur un serveur

Fichiers, rendu et mobile

Génère des images de cartes sur un serveur

Des bons de livraison avec l'itinéraire, un rapport quotidien avec les incidents du jour, une vignette pour une page web : beaucoup de cartes ne s'affichent jamais dans une fenêtre. Le même contrôle produit un PNG ou un bitmap sans être visible, depuis une application console ou un service Windows. Tu peux vérifier que toutes les tuiles sont arrivées avant d'envoyer l'image, pour qu'un serveur de tuiles lent ne finisse jamais en carré gris dans un document client. Le rendu côté serveur utilise les mêmes couches, marqueurs et formes que le contrôle interactif, donc une carte conçue à l'écran a le même aspect dans le PNG.

  • SaveToPNG et SaveToPNGFile, à partir de Delphi 2009
  • RenderToBitmap et SaveToBMPFile pour ton propre pipeline
  • LastRenderMissingTiles signale les tuiles qui n'étaient pas disponibles
  • En .NET, MapView.RenderToPng fonctionne aussi sous Linux
Lire la rubrique d'aide

Fichiers, rendu et mobile

La même carte sur le bureau et sur mobile

Un répartiteur planifie sur un poste Windows et le conducteur suit le plan sur un téléphone. TsgcFMXMap apporte le même modèle, les mêmes couches, marqueurs, formes et services à FireMonkey sous Windows, macOS, iOS et Android, donc le code écrit pour la carte VCL se réutilise. TsgcMapLocation lit la position de l'appareil, pour que la carte se centre sur l'utilisateur et le suive. Le cache de tuiles par couche fonctionne aussi sur mobile, donc un téléphone continue d'afficher les zones déjà chargées.

  • TsgcFMXMap à partir de Delphi XE6, avec les mêmes collections que TsgcVCLMap
  • TsgcMapLocation sous Windows, Android, iOS et macOS
  • La démo FMX montre les tuiles, les marqueurs et la position dans une seule fiche
  • Les versions minimales de Delphi par fonctionnalité sont listées dans la rubrique d'installation
Lire la rubrique d'aide

Accessibilité

UI Automation pour les lecteurs d'écran et le clavier, sans configuration.

Accessibilité

Une carte que le clavier peut atteindre et qu'UI Automation expose

sgcMaps expose la carte à Microsoft UI Automation avec une alternative textuelle, les marqueurs sous forme de liste et les calques sous forme de liste, où chaque calque indique s'il est visible. Les marqueurs sont accessibles au clavier.

  • Les flèches font défiler la carte, les touches plus et moins zooment, et Début revient à la vue de départ
  • Page précédente et Page suivante passent au marqueur précédent ou suivant, Entrée active le marqueur qui a le focus et Échap efface le focus du marqueur
  • La carte affiche un anneau de focus visible tant qu'elle a le focus
  • En .NET, sgcMaps est un contrôle WinForms, la carte est donc accessible sur WinForms

L'accessibilité est activée par défaut dans toutes les éditions, l'édition Community gratuite comprise, sur VCL dans toutes les versions de Delphi et C++Builder de Delphi 7 à Delphi 13, sur FireMonkey sous Windows, et sur WinForms. Dans Delphi et C++Builder, AccessibleName et AccessibleDescription définissent le nom et la description exposés à UI Automation, et en .NET le nom accessible et le texte d'aide standard de chaque framework font de même. Voir les rapports de conformité d'accessibilité. L'image de la carte n'est décrite que par son centre et son zoom, et le moteur de rendu de la carte ne suit pas le contraste élevé de Windows, car l'image de la carte est constituée de tuiles du fournisseur.

Lire la rubrique d'aide

Découvre sgcMaps en action

sgcMaps dans les démos de la suite sgcUI : des applications complètes qui fonctionnent hors ligne avec des données simulées intégrées.

Qui construit avec sgcMaps

Service sur le terrain et logistique

Les techniciens et les conducteurs ont besoin de la carte là où la couverture est mauvaise. Prépare à l'avance les tuiles d'une région, calcule des itinéraires en voiture sur l'appareil avec le calculateur hors ligne et trouve des adresses avec le géocodeur hors ligne. De retour au bureau, le même code dessine les itinéraires planifiés et les zones de livraison, et génère un PNG de chaque itinéraire pour le bon de livraison.

  • Fonctionne hors ligne
  • Itinéraires hors ligne
  • Itinéraires et zones
  • Images de cartes
Lance la démo OfflineServices

Suivi d'actifs et de flottes

Une salle de contrôle surveille des centaines de véhicules, machines ou capteurs à la fois. Le regroupement garde la carte lisible à l'échelle d'un pays et se sépare en épingles individuelles à l'échelle d'une rue. Une carte de chaleur montre où se concentrent les incidents, les contrôles de géorepérage avec point dans un polygone déclenchent des alertes, et les événements de clic sur un marqueur ouvrent la fiche de l'actif dans tes propres fiches.

  • Regroupement
  • Cartes de chaleur
  • Géométrie
  • Événements
Lance la démo MapFeatures

SIG léger et applications de plein air

Les outils de planification, les applications de sport et les logiciels de relevés vivent de traces GPX, de couches KML et de zones GeoJSON. sgcMaps importe et exporte les trois, affiche les statistiques de trace et les couleurs d'altitude, et place le résultat sur un fond de carte topographique. Le contrôle FireMonkey apporte les mêmes fonctionnalités à une tablette ou à un téléphone sur le terrain. Les statistiques de trace donnent d'un coup d'œil le dénivelé positif et négatif total d'un itinéraire.

  • GeoJSON, GPX et KML
  • Tuiles topographiques
  • FireMonkey
Lance la démo OfflineMap

A Map in a Few Lines

The same API in Delphi, C++ Builder and C#: OpenStreetMap tiles, three markers, a geodesic line and a radius, fitted to the markers and saved as PNG.

A VCL map built in code: a cached OpenStreetMap layer, markers, a geodesic line and a circle, then a PNG of the result.

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;

Lire la rubrique d'aide →

The same map in C++ Builder with the generated 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);
}

Lire la rubrique d'aide →

The headless MapView renders the same map to a PNG file, on Windows or 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

Lire la rubrique d'aide →

Lance les démos de sgcMaps

Sept démos Delphi et trois démos .NET sont livrées avec sgcMaps. Il n'y a pas de projets de démo C++ Builder.

Enregistrée uniquement OfflineMap

Tuiles dossier, MBTiles et en ligne, marqueurs et formes, plus import GeoJSON, GPX et KML.

MapFeatures

Fournisseurs et clés d'API, regroupement de marqueurs, édition de formes, cartes de chaleur et export d'images.

Services

Recherche de lieux, géocodage, itinéraires, altitude, fuseaux horaires et position de l'appareil avec les fournisseurs en ligne. Delphi XE8 et suivants.

Enregistrée uniquement OfflineServices

Construis un index GeoNames et un graphe routier OpenStreetMap, puis recherche des lieux et calcule des itinéraires en voiture, à vélo ou à pied sans réseau.

StaticRender

StaticRender

Un programme console qui génère une carte dans un fichier PNG ou BMP sans fenêtre.

FMX

La carte FireMonkey avec tuiles, marqueurs et position de l'appareil, pour Windows, macOS, iOS et Android. Delphi XE6 et suivants.

VectorTiles

VectorTiles

Un serveur de tuiles vectorielles dessiné avec le style intégré ou un fichier de style de ton choix, avec des étiquettes nettes à chaque zoom.

WinFormsDemo

Le SgcMapControl .NET dans une fenêtre WinForms avec fournisseurs, marqueurs et formes.

Enregistrée uniquement OfflineDemo

Le paquet .NET hors ligne : tuiles, itinéraires et géocodage hors ligne à partir de fichiers de données locaux.

ConsoleRenderDemo

ConsoleRenderDemo

Une console .NET qui génère une carte en PNG avec le MapView sans interface, sous Windows ou Linux.

Démos compilées

Des exécutables prêts à lancer pour chaque produit sgcUI, rien à installer.

Télécharger sgcUI_bin.zip →

Où sgcMaps est inclus

sgcMaps fait partie de sgcUI Enterprise, et il est aussi vendu séparément. sgcMaps est aussi inclus dans le pack All-Access.

sgcMaps, package seul

€149 / développeur, code source complet, 1 an de mises à jour.

Acheter sgcMaps → Voir les tarifs →

sgcUI Enterprise

Les 14 produits sgcUI, à partir de €699.

Voir Enterprise →

L'édition Community gratuite (installateur Delphi et NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community) a toutes les fonctionnalités sauf le pack hors ligne. Le paquet esegece.sgcMaps.Offline est réservé à l'édition enregistrée. Un projet référence soit les paquets Community, soit les paquets enregistrés, jamais les deux.

FonctionnalitéCommunity (gratuite)Enregistrée
VCL, FireMonkey and WinForms map controls✓✓
Tile providers, HTTP and vector tile servers✓✓
z/x/y tile folders and the per layer tile cache✓✓
Markers, clustering, shapes, labels and heatmaps✓✓
Geometry functions✓✓
GeoJSON, GPX and KML import and export✓✓
Online geocoding, directions, places, elevation and time zones✓✓
Static rendering to PNG✓✓
Tile downloader for offline packs−✓
MBTiles files (raster and vector)−✓
Offline router and offline geocoder−✓

Frameworks et plateformes pris en charge

Composants de sgcMaps

TsgcVCLMap et TsgcFMXMap

Les contrôles de carte pour VCL et FireMonkey, plus un contrôle Lazarus LCL qui lit des tuiles depuis le disque.

Collections du modèle

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels et Heatmaps, partagées par tous les frameworks.

Services en ligne

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation et TsgcMapTimeZone.

Outils hors ligne

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder et TsgcMapTileDownloader.

TsgcMapLocation et fonctions de géométrie

Position de l'appareil, et sgcMapDistance, relèvement, point de destination, interpolation géodésique, point dans un polygone et simplification de lignes.

Cartes .NET

SgcMapControl pour WinForms, et MapView, le moteur sans interface qui génère du PNG, aussi sous Linux.

CibleComposantPlateformes
Delphi 7 à 13, VCLTsgcVCLMap et le modèleWin32, et Win64 à partir de XE2
Delphi XE6 à 13, FireMonkeyTsgcFMXMapWindows, macOS, iOS et Android, position de l'appareil sous Windows, Android, iOS et macOS
C++ Builder 2007 à 13TsgcVCLMap et le modèleEn-têtes .hpp générés et bibliothèques statiques
LazarusContrôle de carte LCLTuiles depuis le disque uniquement, il ne peut pas télécharger de tuiles
.NET 8 and 9SgcMapControl, MapViewWinForms (net8.0-windows, net9.0-windows, net10.0-windows), PNG sans interface sous Windows et Linux

Foire aux questions

Non. Les tuiles, les marqueurs et les formes sont dessinés nativement par le contrôle, donc il n'y a ni vue web, ni bibliothèque JavaScript, ni environnement d'exécution de navigateur à déployer.

Pas pour OpenStreetMap, OpenTopoMap et les tuiles Esri, ni pour le calculateur d'itinéraires et le géocodeur hors ligne. Les tuiles MapTiler, Thunderforest et Stadia, ainsi que les fournisseurs commerciaux de géocodage et d'itinéraires, utilisent ta propre clé. Chaque fournisseur garde ses propres conditions d'utilisation, que ton application doit respecter.

Oui. Les tuiles peuvent venir de dossiers z/x/y, d'un cache par couche ou de fichiers MBTiles, les itinéraires de TsgcMapOfflineRouter et la recherche d'adresses de TsgcMapOfflineGeocoder. MBTiles, le téléchargeur de tuiles, le calculateur d'itinéraires et le géocodeur hors ligne font partie du pack hors ligne de l'édition enregistrée.

GeoJSON, GPX et KML, en import et en export, avec les statistiques de trace GPX et les couleurs d'altitude. Un lecteur en flux traite aussi les fichiers OpenStreetMap .osm.pbf et XML, ce qui permet de construire le graphe routier hors ligne. Voir Formats de fichiers.

Le modèle et le contrôle VCL fonctionnent à partir de Delphi 7 et C++ Builder 2007. Certaines fonctionnalités exigent une version supérieure : sortie PNG et serveurs de tuiles à partir de Delphi 2009, tuiles vectorielles et calculateur d'itinéraires hors ligne à partir de XE2, FireMonkey et GeoJSON à partir de XE6, MBTiles et géocodeur hors ligne à partir de XE7, services en ligne à partir de XE8.

Les projets de démo sont uniquement en Delphi, mais les composants s'installent dans C++ Builder 2007 à 13 et fonctionnent de la même façon. L'onglet C++ Builder de la section de code ci-dessus montre la même carte construite avec les en-têtes générés.

Oui. L'édition Community est gratuite pour les particuliers et les organisations dont le chiffre d'affaires brut annuel est inférieur à 1 M EUR et qui comptent au maximum 5 développeurs. Elle a toutes les fonctionnalités sauf le pack hors ligne. En .NET, les paquets sont esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community et esegece.sgcMaps.WinForms.Community. Les organisations plus grandes ont besoin d'une licence enregistrée.

Aide de sgcMaps

3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Essaie sgcMaps dès aujourd'hui

L'essai sgcUI inclut sgcMaps avec le pack hors ligne et tous les autres produits sgcUI. L'édition .NET Community est gratuite sur NuGet.