Delphi, C++ Builder y .NET Parte de sgcUI

sgcMaps, mapas nativos para Delphi, C++ Builder y .NET

Pon un mapa de verdad en tu aplicación sin un control de navegador ni una línea de JavaScript. sgcMaps dibuja él mismo teselas raster y vectoriales, muestra miles de marcadores agrupados, rutas y zonas, geocodifica direcciones y sigue funcionando sin conexión con teselas locales y un enrutador sin conexión.

VCL, FireMonkey, Lazarus, WinFormsSin control de navegador, sin JavaScriptEdición .NET Community gratuitaIncluido en sgcUI Enterprise
TsgcVCLMap mostrando el centro de Madrid con teselas vectoriales y marcadores de ubicación rojos y azules

Todo lo que necesita una aplicación de mapas

Trece funciones, cada una con la API real y el tema de ayuda que la respalda.

Teselas y datos del mapa

El control del mapa dibuja cada tesela él mismo, desde un servidor de teselas, una fuente vectorial o archivos en disco.

Un mapa de verdad en tu formulario, sin navegador dentro

Teselas y datos del mapa

Un mapa de verdad en tu formulario, sin navegador dentro

La mayoría de los componentes de mapas envuelven una vista web y una biblioteca JavaScript, así que tu aplicación de escritorio acaba incluyendo un navegador. sgcMaps no. TsgcVCLMap y TsgcFMXMap descargan, guardan en caché y dibujan las teselas en su propio lienzo, gestionan el zoom con la rueda del ratón y el arrastre para desplazarse, y lanzan eventos normales de Delphi. Tu mapa es un control nativo como cualquier otro: se acopla, usa el tema del formulario y se depura como el resto de tu código. No hay ningún proceso adicional que desplegar ni proteger, y el mapa se comporta igual en cada máquina donde se ejecute tu aplicación.

  • La colección Layers contiene uno o más elementos TsgcMapLayer, cada uno con su propio TileSourceType
  • TsgcFMXMap funciona en Windows, macOS, iOS y Android desde Delphi XE6
  • Un control LCL de Lazarus muestra teselas desde disco
  • En .NET, SgcMapControl para WinForms y el MapView sin ventana comparten un mismo motor
  • De derecha a izquierda para árabe y hebreo: los botones de zoom, el selector de capas, la brújula, la barra de escala y la atribución pasan al lado opuesto, mientras que el mapa conserva su orientación geográfica
Leer el tema de la ayuda
Elige un proveedor de teselas con una propiedad

Teselas y datos del mapa

Elige un proveedor de teselas con una propiedad

Elegir un mapa base no debería implicar leer la documentación de un servidor de teselas. Define Provider en una capa y llama a sgcMapApplyProvider: la capa recibe la plantilla de URL, el zoom máximo y el texto de atribución de ese proveedor. OpenStreetMap, OpenTopoMap, Esri World Imagery y Esri World Street funcionan sin clave. MapTiler, Thunderforest y Stadia usan tu propia clave de API. Tu propio servidor de teselas está a una plantilla de URL de distancia. Cada capa tiene su propio proveedor, así que una capa de satélite y una de calles pueden estar en el mismo mapa y el usuario cambia entre ellas en el propio mapa.

  • Sin clave: mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Con tu clave: mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom con URLTemplate lee cualquier servidor {z}/{x}/{y}
  • La atribución del proveedor se dibuja en el mapa por ti
  • ShowLayerSwitcher pone un botón de capas en el mapa
Leer el tema de la ayuda
Teselas vectoriales que se mantienen nítidas a cualquier tamaño

Teselas y datos del mapa

Teselas vectoriales que se mantienen nítidas a cualquier tamaño

Las teselas raster se difuminan al escalarlas, y cada cambio de estilo implica nuevas imágenes del servidor. Con teselas vectoriales el control recibe la geometría y dibuja él mismo carreteras, agua, edificios y etiquetas, de modo que el texto se mantiene nítido en pantallas de alta densidad y en las imágenes exportadas. Apunta una capa a un servidor Mapbox Vector Tile y deja VectorStyleFile vacío para usar el estilo integrado, o carga un archivo de estilo MapLibre o Mapbox GL para ajustarlo a tu marca. Las capas vectoriales funcionan igual en el control VCL y en el de FireMonkey.

  • mtsVectorHTTP lee un servidor de teselas vectoriales, desde Delphi XE2
  • mtsVectorMBTiles lee un archivo MBTiles vectorial local (paquete sin conexión)
  • TsgcMapVectorStyle carga un estilo con LoadFromFile o LoadFromJSON
  • La decodificación y el dibujo viven en TsgcMapTileSource_MVT, en código Delphi puro
Leer el tema de la ayuda

Teselas y datos del mapa Solo registrada

Sigue trabajando cuando no hay red

Un técnico de campo en un sótano, un buque en el mar o una red de planta no pueden depender de un servidor de teselas. sgcMaps lee las teselas desde disco exactamente igual que desde la web. Dale a una capa un CacheFolder y cada tesela que descargue se conserva para la próxima ejecución. Para un paquete completo sin conexión, TsgcMapTileDownloader descarga con antelación un área y un rango de zoom en una carpeta o en un archivo MBTiles.

  • mtsFolder lee una carpeta z/x/y de teselas PNG o JPEG
  • mtsMBTiles lee un archivo MBTiles raster, desde Delphi XE7 (FireDAC SQLite)
  • CountTiles te dice el tamaño de una descarga antes de iniciarla; DelayMS y OnProgress la mantienen respetuosa y visible
  • Las descargas masivas deben respetar los términos del proveedor: las teselas de OpenStreetMap son solo para visualización interactiva

Community lee carpetas de teselas z/x/y y mantiene el CacheFolder por capa. El descargador de teselas y los archivos MBTiles pertenecen al paquete sin conexión.

Leer el tema de la ayuda

Marcadores, formas y geometría

Pon tus propios datos en el mapa, mantenlos legibles en cada nivel de zoom y haz los cálculos que hay detrás.

Marcadores, formas y geometría

Miles de marcadores, siempre legibles

Una flota, una red de tiendas o una malla de sensores se convierte enseguida en una nube de chinchetas superpuestas. Activa la agrupación y los marcadores cercanos se funden en una burbuja numerada que vuelve a dividirse al acercar el zoom, recalculada en cada nivel. Cada marcador lleva su propio popup, tooltip e icono, y los clics, arrastres y clics en grupos llegan como eventos, de modo que el mapa pasa a formar parte de tu flujo de trabajo en lugar de ser una imagen. Los marcadores pueden añadirse en un bucle desde tus datos o importarse desde archivos GeoJSON, GPX y KML, y ClearMarkers los reinicia con una sola llamada.

  • MarkerOptions.Clustering con GridSize, MinClusterSize y ZoomOnClick
  • PopupText, TooltipText e IconBitmap por marcador
  • Eventos OnMarkerClick, OnClusterClick y OnMarkerDragEnd
  • BeginUpdate y EndUpdate alrededor de las cargas masivas; FitToMarkers encuadra todos
  • MarkerAtScreen y ClusterAtScreen comprueban cualquier píxel
Leer el tema de la ayuda
Rutas, zonas y mapas de calor en un solo mapa

Marcadores, formas y geometría

Rutas, zonas y mapas de calor en un solo mapa

La mayoría de las pantallas de mapa necesitan más que chinchetas: la ruta de reparto planificada, el área que atiende un almacén, un radio alrededor de un cliente, de dónde vienen los pedidos. sgcMaps dibuja todo eso como elementos del modelo del mapa, en las mismas coordenadas que tus marcadores. Las formas pueden hacerse editables, de modo que un usuario arrastra los vértices de una zona con el ratón y tu código recibe aviso cuando termina la edición. Las etiquetas colocan texto en una coordenada con su propia fuente, color y fondo, lo que mantiene los nombres de zona y los números de ruta unidos al mapa.

  • AddPolyline con líneas Dashed y Geodesic
  • AddPolygon con AddHole, además de AddRectangle, AddCircle (RadiusMeters) y AddLabel
  • Las formas Editable informan de los cambios mediante OnShapeEdited
  • TsgcMapHeatmap admite puntos ponderados con AddPoint y un MaxIntensity
Leer el tema de la ayuda

Marcadores, formas y geometría

Los cálculos geográficos ya están escritos

¿Está este vehículo dentro de la zona? ¿A qué distancia está el almacén más cercano? ¿Qué punto de la ruta está más cerca del cliente? Estas preguntas surgen en toda aplicación de mapas y es fácil equivocarse cerca de los polos o en distancias largas. La unidad de geometría las responde sobre la esfera WGS84 con funciones simples que también puedes llamar desde un servicio sin ningún mapa. Las funciones toman registros TsgcMapCoord simples, y sgcMapLatLonToPixel y sgcMapPixelToLatLon convierten entre coordenadas de pantalla y del mundo cuando dibujas tus propias superposiciones.

  • sgcMapDistance en metros, sgcMapInitialBearing y sgcMapDestinationPoint
  • sgcMapPointInPolygon y sgcMapPointInPolygonWithHoles para geovallas
  • sgcMapNearestPointOnPolyline ajusta una posición a una ruta
  • sgcMapGeodesicInterpolate y sgcMapSimplify para líneas suaves y ligeras
Leer el tema de la ayuda

Búsqueda y rutas

Encuentra direcciones y planifica rutas con proveedores en línea, o totalmente sin conexión y sin clave de API.

Búsqueda y rutas

Geocodificación, direcciones y lugares tras una única API

Cada proveedor de geocodificación y rutas tiene su propio formato REST, sus claves y sus rarezas. Los componentes de servicio las ocultan: eliges un proveedor, defines tu clave cuando la necesita y llamas a los mismos métodos, de forma síncrona o asíncrona. Cambiar de un proveedor a otro es un cambio de propiedad, no una reescritura, y los resultados llegan como objetos Delphi listos para ponerlos en el mapa. Todos los componentes comparten la clase base TsgcMapService, de modo que ApiKey, UserAgent y LastError funcionan igual con cada proveedor.

  • TsgcMapGeocoder: Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService y Geoapify
  • TsgcMapDirections: OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox y Geoapify
  • TsgcMapPlaces para autocompletar direcciones, TsgcMapElevation y TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync y SuggestAsync mantienen la interfaz fluida; los errores llegan en OnError
Leer el tema de la ayuda

Búsqueda y rutas Solo registrada

Rutas y búsqueda de direcciones sin internet y sin clave

Las rutas en línea fallan justo donde se usan las aplicaciones de campo, y cada petición puede costar dinero. El enrutador sin conexión calcula rutas en coche, bici y a pie en el dispositivo a partir de un grafo de rutas construido una vez desde un extracto de OpenStreetMap. El geocodificador sin conexión busca nombres de lugares y geocodifica a la inversa un clic a partir de un índice GeoNames en SQLite. Ambos funcionan sin red, sin cuenta y sin coste por petición. El enrutador y el geocodificador son componentes no visuales, así que un servicio de Windows o una herramienta de consola puede responder a peticiones de ruta y de direcciones sin ningún mapa en pantalla.

  • TsgcMapOfflineRouter responde a GetRoute a partir de un grafo construido por TsgcMapRouteGraphBuilder desde .osm.pbf
  • sgcMapAddRouteToPolylines dibuja el resultado en el mapa
  • TsgcMapOfflineGeocoder con ReverseGeocode, sobre un índice de TsgcMapGeoIndexBuilder
  • Los constructores de línea de comandos del grafo y del índice están en la carpeta Tools

Community usa los servicios en línea; el enrutador y el geocodificador sin conexión pertenecen al paquete sin conexión.

Leer el tema de la ayuda

Archivos, renderizado y móvil

Intercambia datos geográficos con otras herramientas, renderiza mapas donde no hay pantalla y lleva el mapa a un teléfono.

Archivos, renderizado y móvil

Abre los archivos que tus usuarios ya tienen

Los clientes envían tracks de un reloj GPS, zonas dibujadas en una herramienta GIS o un KML de otro sistema. sgcMaps lee y escribe GeoJSON, GPX y KML directamente en el modelo del mapa, así que una importación es una llamada y una exportación es otra. Los tracks GPX llegan con sus estadísticas y pueden colorearse por elevación, y un lector en flujo recorre extractos grandes de OpenStreetMap sin cargarlos en memoria. Las exportaciones usan las mismas funciones a la inversa, así que las zonas que un usuario dibujó en el mapa pueden guardarse como GeoJSON o KML y abrirse en otras herramientas GIS.

  • sgcMapLoadGeoJSONFile y sgcMapSaveGeoJSONFile, desde Delphi XE6
  • TsgcMapGPX con TrackStats (TotalAscent, TotalDescent) y ColorByElevation
  • sgcMapLoadKMLFile y sgcMapSaveKMLFile
  • El lector de OpenStreetMap procesa archivos .osm.pbf y XML en flujo mediante eventos
  • sgcMapGeoJSONAsText devuelve el GeoJSON del mapa como cadena
Leer el tema de la ayuda
Renderiza imágenes de mapa en un servidor

Archivos, renderizado y móvil

Renderiza imágenes de mapa en un servidor

Albaranes con la ruta, un informe diario con las incidencias de hoy, una miniatura para una página web: muchos mapas nunca se muestran en una ventana. El mismo control se renderiza a un PNG o a un bitmap sin ser visible, desde una aplicación de consola o un servicio de Windows. Puedes comprobar si ha llegado cada tesela antes de enviar la imagen, de modo que un servidor de teselas lento nunca acabe como un cuadrado gris en un documento de cliente. El renderizado en servidor usa las mismas capas, marcadores y formas que el control interactivo, así que un mapa diseñado en pantalla se ve igual en el PNG.

  • SaveToPNG y SaveToPNGFile, desde Delphi 2009
  • RenderToBitmap y SaveToBMPFile para tu propio flujo de trabajo
  • LastRenderMissingTiles informa de las teselas que no estaban disponibles
  • En .NET, MapView.RenderToPng también funciona en Linux
Leer el tema de la ayuda

Archivos, renderizado y móvil

El mismo mapa en escritorio y en móvil

Un despachador planifica en un escritorio Windows y el conductor sigue el plan en un teléfono. TsgcFMXMap lleva el mismo modelo, capas, marcadores, formas y servicios a FireMonkey en Windows, macOS, iOS y Android, así que el código que escribiste para el mapa VCL se traslada. TsgcMapLocation lee la posición del dispositivo, de modo que el mapa puede centrarse en el usuario y seguirlo. La caché de teselas por capa también funciona en móvil, así que un teléfono sigue mostrando las zonas que ya ha cargado.

  • TsgcFMXMap desde Delphi XE6, con las mismas colecciones que TsgcVCLMap
  • TsgcMapLocation en Windows, Android, iOS y macOS
  • La demo FMX muestra teselas, marcadores y ubicación en un solo formulario
  • Las versiones mínimas de Delphi por función se indican en el tema de instalación
Leer el tema de la ayuda

Accesibilidad

UI Automation para lectores de pantalla y teclado, sin configuración.

Accesibilidad

Un mapa al que llega el teclado y que UI Automation expone

sgcMaps expone el mapa a Microsoft UI Automation con una alternativa de texto, los marcadores como una lista y las capas como una lista, donde cada capa indica si es visible. Se puede llegar a los marcadores con el teclado.

  • Las flechas desplazan el mapa, las teclas más y menos amplían o reducen, e Inicio vuelve a la vista inicial
  • Re Pág y Av Pág pasan al marcador anterior o siguiente, Intro activa el marcador con el foco y Esc quita el foco del marcador
  • El mapa muestra un anillo de foco visible mientras tiene el foco
  • En .NET, sgcMaps es un control WinForms, así que el mapa es accesible en WinForms

La accesibilidad está activada por defecto en todas las ediciones, también en la edición Community gratuita, en VCL en todas las versiones de Delphi y C++Builder desde Delphi 7 hasta Delphi 13, en FireMonkey en Windows, y en WinForms. En Delphi y C++Builder, AccessibleName y AccessibleDescription establecen el nombre y la descripción expuestos a UI Automation, y en .NET lo hacen el nombre accesible y el texto de ayuda estándar de cada framework. Consulta los informes de conformidad de accesibilidad (en inglés). La imagen del mapa se describe solo por su centro y su zoom, y el renderizador del mapa no respeta el alto contraste de Windows, porque la imagen del mapa son teselas del proveedor.

Leer el tema de la ayuda

Mira sgcMaps en acción

sgcMaps dentro de las demos de la suite sgcUI: aplicaciones completas que funcionan sin conexión con datos simulados integrados.

Quién construye con sgcMaps

Servicio de campo y logística

Los técnicos y conductores necesitan el mapa donde hay poca cobertura. Prepara con antelación las teselas de una región, calcula rutas en coche en el dispositivo con el enrutador sin conexión y encuentra direcciones con el geocodificador sin conexión. De vuelta en la oficina, el mismo código dibuja las rutas planificadas y las zonas de reparto, y renderiza un PNG de cada ruta para el albarán.

  • Funciona sin conexión
  • Rutas sin conexión
  • Rutas y zonas
  • Imágenes de mapa
Ejecuta la demo OfflineServices

Seguimiento de activos y flotas

Una sala de control vigila cientos de vehículos, máquinas o sensores a la vez. La agrupación mantiene el mapa legible a escala de país y se divide en chinchetas individuales a nivel de calle. Un mapa de calor muestra dónde se concentran las incidencias, las comprobaciones de geovalla con punto en polígono lanzan alertas, y los eventos de clic en marcadores abren el registro del activo en tus propios formularios.

  • Agrupación
  • Mapas de calor
  • Geometría
  • Eventos
Ejecuta la demo MapFeatures

GIS ligero y aplicaciones de exterior

Las herramientas de planificación, las aplicaciones deportivas y el software de topografía viven de tracks GPX, capas KML y zonas GeoJSON. sgcMaps importa y exporta los tres, muestra estadísticas del track y colores de elevación, y pone el resultado sobre un mapa base topográfico. El control FireMonkey lleva las mismas funciones a una tableta o un teléfono sobre el terreno. Las estadísticas del track dan el ascenso y el descenso totales de una ruta de un vistazo.

  • GeoJSON, GPX y KML
  • Teselas topográficas
  • FireMonkey
Ejecuta la demo OfflineMap

Un mapa en pocas líneas

La misma API en Delphi, C++ Builder y C#: teselas de OpenStreetMap, tres marcadores, una línea geodésica y un radio, encuadrados a los marcadores y guardados como PNG.

Un mapa VCL construido en código: una capa de OpenStreetMap con caché, marcadores, una línea geodésica y un círculo, y luego un PNG del resultado.

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;

Leer el tema de la ayuda →

El mismo mapa en C++ Builder con las cabeceras generadas de sgcMaps.

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

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

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

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

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

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

Leer el tema de la ayuda →

El MapView sin ventana renderiza el mismo mapa a un archivo PNG, en 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

Leer el tema de la ayuda →

Ejecuta las demos de sgcMaps

Con sgcMaps se incluyen siete demos de Delphi y tres de .NET. No hay proyectos de demo de C++ Builder.

Solo registrada OfflineMap

Teselas de carpeta, MBTiles y en línea, marcadores y formas, además de importación GeoJSON, GPX y KML.

MapFeatures

Proveedores y claves de API, agrupación de marcadores, edición de formas, mapas de calor y exportación de imágenes.

Services

Búsqueda de lugares, geocodificación, direcciones, elevación, zonas horarias y ubicación del dispositivo con los proveedores en línea. Delphi XE8 y posteriores.

Solo registrada OfflineServices

Construye un índice GeoNames y un grafo de rutas de OpenStreetMap, y luego busca lugares y calcula rutas en coche, bici o a pie sin red.

StaticRender

StaticRender

Un programa de consola que renderiza un mapa a un archivo PNG o BMP sin ventana.

FMX

El mapa FireMonkey con teselas, marcadores y ubicación del dispositivo, para Windows, macOS, iOS y Android. Delphi XE6 y posteriores.

VectorTiles

VectorTiles

Un servidor de teselas vectoriales dibujado con el estilo integrado o un archivo de estilo propio, con etiquetas nítidas en cada zoom.

WinFormsDemo

El SgcMapControl de .NET en una ventana WinForms con proveedores, marcadores y formas.

Solo registrada OfflineDemo

El paquete .NET sin conexión: teselas, rutas y geocodificación sin conexión a partir de archivos de datos locales.

ConsoleRenderDemo

ConsoleRenderDemo

Una consola .NET que renderiza un mapa a PNG con el MapView sin ventana, en Windows o Linux.

Demos compiladas

Ejecutables listos para usar de cada producto sgcUI, sin nada que instalar.

Descargar sgcUI_bin.zip →

Dónde se incluye sgcMaps

sgcMaps forma parte de sgcUI Enterprise y también se vende por separado. sgcMaps también está incluido en el paquete All-Access.

Paquete individual de sgcMaps

€149 / desarrollador, código fuente completo, 1 año de actualizaciones.

Comprar sgcMaps → Ver precios →

sgcUI Enterprise

Los 14 productos sgcUI, desde €699.

Ver Enterprise →

La edición Community gratuita (instalador Delphi y NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community) tiene todas las funciones excepto el paquete sin conexión. El paquete esegece.sgcMaps.Offline es solo registrado. Un proyecto referencia los paquetes Community o los registrados, nunca ambos.

FunciónCommunity (gratuita)Registrada
Controles de mapa VCL, FireMonkey y WinForms✓✓
Proveedores de teselas, servidores de teselas HTTP y vectoriales✓✓
Carpetas de teselas z/x/y y caché de teselas por capa✓✓
Marcadores, agrupación, formas, etiquetas y mapas de calor✓✓
Funciones de geometría✓✓
Importación y exportación de GeoJSON, GPX y KML✓✓
Geocodificación, direcciones, lugares, elevación y zonas horarias en línea✓✓
Renderizado estático a PNG✓✓
Descargador de teselas para paquetes sin conexión−✓
Archivos MBTiles (raster y vectoriales)−✓
Enrutador y geocodificador sin conexión−✓

Frameworks y plataformas compatibles

Componentes de sgcMaps

TsgcVCLMap y TsgcFMXMap

Los controles de mapa para VCL y FireMonkey, además de un control LCL de Lazarus que lee teselas desde disco.

Colecciones del modelo

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels y Heatmaps, compartidas por todos los frameworks.

Servicios en línea

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation y TsgcMapTimeZone.

Herramientas sin conexión

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder y TsgcMapTileDownloader.

TsgcMapLocation y ayudas de geometría

Ubicación del dispositivo, y sgcMapDistance, rumbo, punto de destino, interpolación geodésica, punto en polígono y simplificación de líneas.

Mapas .NET

SgcMapControl para WinForms, y MapView, el motor sin ventana que renderiza a PNG, también en Linux.

DestinoComponentePlataformas
Delphi 7 a 13, VCLTsgcVCLMap y el modeloWin32, y Win64 desde XE2
Delphi XE6 a 13, FireMonkeyTsgcFMXMapWindows, macOS, iOS y Android, ubicación del dispositivo en Windows, Android, iOS y macOS
C++ Builder 2007 a 13TsgcVCLMap y el modeloCabeceras .hpp generadas y bibliotecas estáticas
LazarusControl de mapa LCLSolo teselas desde disco, no puede descargar teselas
.NET 8, 9 y 10SgcMapControl, MapViewWinForms (net8.0-windows, net9.0-windows, net10.0-windows), PNG sin ventana en Windows y Linux

Preguntas frecuentes

No. Las teselas, los marcadores y las formas los dibuja el control de forma nativa, así que no hay vista web, ni biblioteca JavaScript, ni runtime de navegador que desplegar.

No para OpenStreetMap, OpenTopoMap y las teselas de Esri, ni para el enrutador y el geocodificador sin conexión. Las teselas de MapTiler, Thunderforest y Stadia, y los proveedores comerciales de geocodificación y rutas, usan tu propia clave. Cada proveedor mantiene sus propios términos de uso, que tu aplicación debe respetar.

Sí. Las teselas pueden venir de carpetas z/x/y, de una caché por capa o de archivos MBTiles, las rutas de TsgcMapOfflineRouter y la búsqueda de direcciones de TsgcMapOfflineGeocoder. MBTiles, el descargador de teselas y el enrutador y geocodificador sin conexión forman parte del paquete sin conexión de la edición registrada.

GeoJSON, GPX y KML, para importar y exportar, con estadísticas de tracks GPX y colores de elevación. Un lector en flujo también procesa archivos .osm.pbf y XML de OpenStreetMap, que es como se construye el grafo de rutas sin conexión. Consulta Formatos de archivo.

El modelo y el control VCL funcionan desde Delphi 7 y C++ Builder 2007. Algunas funciones tienen un mínimo superior: salida PNG y servidores de teselas desde Delphi 2009, teselas vectoriales y enrutador sin conexión desde XE2, FireMonkey y GeoJSON desde XE6, MBTiles y geocodificador sin conexión desde XE7, servicios en línea desde XE8.

Los proyectos de demo son solo de Delphi, pero los componentes se instalan en C++ Builder 2007 a 13 y funcionan igual. La pestaña C++ Builder de la sección de código de arriba muestra el mismo mapa construido con las cabeceras generadas.

Sí. La edición Community es gratuita para particulares y organizaciones con menos de 1 millón de euros de facturación bruta anual y no más de 5 desarrolladores. Tiene todas las funciones excepto el paquete sin conexión. En .NET los paquetes son esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community y esegece.sgcMaps.WinForms.Community. Las organizaciones más grandes necesitan una licencia registrada.

Ayuda de sgcMaps

3,000+Desarrolladores
20+Años
761+Componentes
30+Integraciones de API
5Plataformas
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

Prueba sgcMaps hoy

La prueba de sgcUI incluye sgcMaps con el paquete sin conexión y todos los demás productos sgcUI. La edición .NET Community es gratuita en NuGet.