sgcUI sgcMaps is available right now

sgcMaps. A real map. No browser inside.

Draw raster and vector tiles natively, show thousands of clustered markers, routes and zones, geocode addresses, and keep working offline with local tiles and an offline router. A native map control for Delphi, C++ Builder and .NET, with source code included.

  • VCL
  • FireMonkey
  • Lazarus
  • WinForms
  • WPF
  • Avalonia
  • Delphi 7 to 13
  • .NET 8, 9 and 10
  • 4keyless tile providers: OpenStreetMap, OpenTopoMap and two Esri layers
  • 7geocoding providers behind one API, plus an offline geocoder
  • 4geodata formats read and written: GeoJSON, GPX, KML and WKT, plus shapefile import
  • 4platforms for the FireMonkey map: Windows, and macOS, iOS, Android from Delphi 10.4

Everything a map application needs.

Tiles, your own data, search and routing, files and images. sgcMaps covers all of it with native controls, online or with no network at all.

  • Native everywhere

    VCL, FireMonkey, Lazarus, WinForms, WPF and Avalonia controls that draw the map themselves.

  • Your data on the map

    Clustered markers, routes, zones, circles, labels and heatmaps from code or files.

  • Works offline

    Tiles from disk, an offline router and an offline geocoder, no API key needed.

  • Maps as images

    Render PNG files from a console, a service or a Linux .NET process.

See it run.

The map control at work: tile providers, vector styles, overlays and offline routing.

The same Madrid area rendered with OpenStreetMap, OpenTopoMap, Esri World Imagery and Esri World Street tiles
Tiles and map data

Pick a tile provider with one property.

  • Set Provider on a layer and call sgcMapApplyProvider: the URL template, the maximum zoom and the attribution come with it.
  • OpenStreetMap, OpenTopoMap, Esri World Imagery and Esri World Street work without a key. MapTiler, Thunderforest and Stadia take your own.
  • mtpCustom with URLTemplate reads any {z}/{x}/{y} server, and ShowLayerSwitcher lets users switch layers on the map.
A vector tile map drawn by sgcMaps with crisp roads, water and labels
Vector tiles

Vector tiles that stay sharp at any size.

  • mtsVectorHTTP reads a Mapbox Vector Tile server, mtsVectorMBTiles a local vector MBTiles file.
  • Leave VectorStyleFile empty for the built in style, or load a MapLibre or Mapbox GL style to match your brand.
  • The control draws roads, water, buildings and labels itself, so text stays crisp on high DPI screens and in exported images.
Polylines, polygons and heatmaps drawn on the same map
Your data on the map

Routes, zones and heatmaps on one map.

  • AddPolyline with dashed and geodesic lines, AddPolygon with holes, plus AddRectangle, AddCircle and AddLabel.
  • Editable shapes let users drag the vertices of a zone, and OnShapeEdited tells your code when the edit ends.
  • TsgcMapHeatmap takes weighted points, and MarkerOptions.Clustering merges nearby markers into numbered bubbles.
The OfflineServices demo: offline place search, reverse geocoding and car routing over a map of Andorra
Works offline

Routes and address search with no internet and no key.

  • TsgcMapOfflineRouter computes car, bike and foot routes from a graph built once from an OpenStreetMap extract.
  • TsgcMapOfflineGeocoder searches place names and reverse geocodes a click from a GeoNames index in SQLite.
  • TsgcMapTileDownloader fetches an area and a zoom range ahead of time into a folder or an MBTiles file.

A map in a few lines.

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

dotnet add package esegece.sgcMaps.Rendering

C++ Builder and C# versions

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;

Part of sgcUI.

Buy sgcMaps on its own, or get it in sgcUI Enterprise next to every other sgcUI product, sharing one theme and runtime. Each comes with source code.

On its own

sgcMaps

The map control on its own, full source code and 1 year of updates.

€149 / developer
sgcMaps pricing

Standard

sgcGrid, sgcNavigation, sgcToolbar and sgcEditors.

€380 / developer
See Standard

Professional

Standard plus sgcCharts, sgcDashboard and sgcGauges.

€529 / developer
See Professional
Includes sgcMaps

Enterprise

All 14 sgcUI products.

€699 / developer
See Enterprise

The Community edition is free, with every feature except the offline pack; for .NET it is esegece.sgcMaps.Community on NuGet. sgcMaps is also in the All-Access bundle.

Explore sgcUI

Put sgcMaps in your own application today.

The trial includes the offline pack. Run the MapFeatures, OfflineMap and OfflineServices demos, or browse every feature first.

Latest from the blog

View all posts →

You are seeing the sgcMaps view of eSeGeCe.

Show me another angle →
30-Day Money-Back GuaranteeNot satisfied? Request a full refund within 30 days of purchase. See refund policy