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

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

Coloque um mapa de verdade no seu aplicativo sem controle de navegador nem uma linha de JavaScript. O sgcMaps desenha os tiles raster e vetoriais por conta própria, mostra milhares de marcadores agrupados, rotas e zonas, geocodifica endereços e continua funcionando offline com tiles locais e um roteador offline.

VCL, FireMonkey, Lazarus, WinFormsSem controle de navegador, sem JavaScriptEdição .NET Community gratuitaIncluído no sgcUI Enterprise
TsgcVCLMap mostrando o centro de Madri a partir de tiles vetoriais com marcadores de localização vermelhos e azuis

Tudo o que um aplicativo de mapas precisa

Treze recursos, cada um com a API real e o tópico de ajuda por trás dele.

Tiles e dados de mapa

O controle de mapa desenha cada tile por conta própria, a partir de um servidor de tiles, de uma fonte vetorial ou de arquivos em disco.

Um mapa de verdade no seu formulário, sem navegador dentro

Tiles e dados de mapa

Um mapa de verdade no seu formulário, sem navegador dentro

A maioria dos componentes de mapa embrulha uma web view e uma biblioteca JavaScript, e o seu aplicativo desktop acaba distribuindo um navegador. O sgcMaps não. O TsgcVCLMap e o TsgcFMXMap baixam, guardam em cache e desenham os tiles no próprio canvas, tratam o zoom pela roda do mouse e o arrastar para deslocar, e disparam eventos normais do Delphi. O seu mapa é um controle nativo como qualquer outro: ele se ancora, segue o tema do formulário e se depura como o resto do seu código. Não há processo extra para implantar nem para proteger, e o mapa se comporta da mesma forma em todas as máquinas em que o seu aplicativo roda.

  • A coleção Layers guarda um ou mais itens TsgcMapLayer, cada um com o seu próprio TileSourceType
  • O TsgcFMXMap funciona em Windows, macOS, iOS e Android a partir do Delphi XE6
  • Um controle LCL do Lazarus mostra tiles do disco
  • No .NET, o SgcMapControl para WinForms e o MapView headless compartilham um único motor
  • Da direita para a esquerda para árabe e hebraico: os botões de zoom, o seletor de camadas, a bússola, a barra de escala e a atribuição passam para o lado oposto, enquanto o mapa mantém sua orientação geográfica
Ler o tópico da ajuda
Escolha um provedor de tiles com uma propriedade

Tiles e dados de mapa

Escolha um provedor de tiles com uma propriedade

Escolher um mapa base não deve exigir ler a documentação de um servidor de tiles. Defina Provider em uma camada e chame sgcMapApplyProvider: a camada recebe o modelo de URL, o zoom máximo e o texto de atribuição desse provedor. OpenStreetMap, OpenTopoMap, Esri World Imagery e Esri World Street funcionam sem chave. MapTiler, Thunderforest e Stadia usam a sua própria chave de API. O seu próprio servidor de tiles está a um modelo de URL de distância. Cada camada tem o seu próprio provedor, então uma camada de satélite e uma camada de ruas podem coexistir no mesmo mapa e o usuário alterna entre elas no próprio mapa.

  • Sem chave: mtpOpenStreetMap, mtpOpenTopoMap, mtpEsriWorldImagery, mtpEsriWorldStreet
  • Com a sua chave: mtpMapTilerStreets, mtpMapTilerSatellite, mtpThunderforestCycle, mtpThunderforestTransport, mtpStadiaAlidadeSmooth
  • mtpCustom com URLTemplate lê qualquer servidor {z}/{x}/{y}
  • A atribuição do provedor é desenhada no mapa para você
  • ShowLayerSwitcher coloca um botão de camadas no mapa
Ler o tópico da ajuda
Tiles vetoriais que continuam nítidos em qualquer tamanho

Tiles e dados de mapa

Tiles vetoriais que continuam nítidos em qualquer tamanho

Os tiles raster ficam borrados ao serem ampliados, e cada mudança de estilo significa novas imagens do servidor. Com tiles vetoriais, o controle recebe a geometria e desenha estradas, água, edifícios e rótulos por conta própria, de modo que o texto continua nítido em telas de alta DPI e em imagens exportadas. Aponte uma camada para um servidor de Mapbox Vector Tiles e deixe VectorStyleFile vazio para usar o estilo embutido, ou carregue um arquivo de estilo MapLibre ou Mapbox GL para combinar com a sua marca. As camadas vetoriais funcionam tanto no controle VCL quanto no FireMonkey.

  • mtsVectorHTTP lê um servidor de tiles vetoriais, a partir do Delphi XE2
  • mtsVectorMBTiles lê um arquivo MBTiles vetorial local (pacote offline)
  • TsgcMapVectorStyle carrega um estilo com LoadFromFile ou LoadFromJSON
  • A decodificação e o desenho estão em TsgcMapTileSource_MVT, em código Delphi puro
Ler o tópico da ajuda

Tiles e dados de mapa Somente Registrada

Continue trabalhando quando a rede cair

Um técnico de campo em um porão, uma embarcação no mar ou uma rede de chão de fábrica não podem depender de um servidor de tiles. O sgcMaps lê os tiles do disco exatamente como os lê da web. Dê a uma camada um CacheFolder e cada tile que ela buscar é mantido para a próxima execução. Para um pacote offline completo, o TsgcMapTileDownloader busca uma área e um intervalo de zoom com antecedência para uma pasta ou um arquivo MBTiles.

  • mtsFolder lê uma pasta z/x/y de tiles PNG ou JPEG
  • mtsMBTiles lê um arquivo MBTiles raster, a partir do Delphi XE7 (FireDAC SQLite)
  • CountTiles informa o tamanho de um download antes de você iniciá-lo; DelayMS e OnProgress o mantêm educado e visível
  • Downloads em massa devem respeitar os termos do provedor: os tiles do OpenStreetMap são apenas para visualização interativa

A Community lê pastas de tiles z/x/y e mantém o CacheFolder por camada. O downloader de tiles e os arquivos MBTiles pertencem ao pacote offline.

Ler o tópico da ajuda

Marcadores, formas e geometria

Coloque os seus próprios dados no mapa, mantenha-os legíveis em cada nível de zoom e faça os cálculos por trás deles.

Marcadores, formas e geometria

Milhares de marcadores, ainda legíveis

Uma frota, uma rede de lojas ou uma grade de sensores viram rapidamente uma nuvem de pinos sobrepostos. Ative o agrupamento e os marcadores próximos se fundem em uma bolha numerada que se divide de novo conforme o usuário aproxima o zoom, recalculada a cada nível de zoom. Cada marcador tem o seu próprio popup, dica e ícone, e cliques, arrastes e cliques em grupos chegam como eventos, de modo que o mapa passa a fazer parte do seu fluxo de trabalho em vez de ser uma imagem. Os marcadores podem ser adicionados em um laço a partir dos seus dados ou importados de arquivos GeoJSON, GPX e KML, e ClearMarkers os redefine em uma chamada.

  • MarkerOptions.Clustering com GridSize, MinClusterSize e ZoomOnClick
  • PopupText, TooltipText e IconBitmap por marcador
  • Eventos OnMarkerClick, OnClusterClick e OnMarkerDragEnd
  • BeginUpdate e EndUpdate em torno de cargas em massa; FitToMarkers enquadra todos
  • MarkerAtScreen e ClusterAtScreen testam qualquer pixel
Ler o tópico da ajuda
Rotas, zonas e mapas de calor em um só mapa

Marcadores, formas e geometria

Rotas, zonas e mapas de calor em um só mapa

A maioria das telas de mapa precisa de mais do que pinos: a rota de entrega planejada, a área que um depósito atende, um raio em torno de um cliente, de onde vêm os pedidos. O sgcMaps desenha todos eles como itens do modelo do mapa, nas mesmas coordenadas dos seus marcadores. As formas podem ser tornadas editáveis, de modo que o usuário arraste os vértices de uma zona com o mouse e o seu código seja avisado quando a edição terminar. Os rótulos colocam texto em uma coordenada com fonte, cor e fundo próprios, o que mantém os nomes das zonas e os números das rotas presos ao mapa.

  • AddPolyline com linhas Dashed e Geodesic
  • AddPolygon com AddHole, além de AddRectangle, AddCircle (RadiusMeters) e AddLabel
  • Formas Editable informam as alterações por meio de OnShapeEdited
  • TsgcMapHeatmap recebe pontos ponderados com AddPoint e um MaxIntensity
Ler o tópico da ajuda

Marcadores, formas e geometria

A matemática geográfica já está pronta

Este veículo está dentro da zona? A que distância fica o depósito mais próximo? Qual ponto da rota está mais perto do cliente? Essas perguntas surgem em todo aplicativo de mapas e é fácil errar perto dos polos ou em grandes distâncias. A unit de geometria as responde na esfera WGS84 com funções simples que você também pode chamar de um serviço sem nenhum mapa. As funções recebem registros TsgcMapCoord simples, e sgcMapLatLonToPixel e sgcMapPixelToLatLon convertem entre coordenadas de tela e de mundo quando você desenha as suas próprias camadas sobrepostas.

  • sgcMapDistance em metros, sgcMapInitialBearing e sgcMapDestinationPoint
  • sgcMapPointInPolygon e sgcMapPointInPolygonWithHoles para geofences
  • sgcMapNearestPointOnPolyline encaixa uma posição em uma rota
  • sgcMapGeodesicInterpolate e sgcMapSimplify para linhas suaves e leves
Ler o tópico da ajuda

Busca e roteamento

Encontre endereços e planeje rotas com provedores online, ou totalmente offline sem chave de API.

Busca e roteamento

Geocodificação, rotas e lugares em uma única API

Cada provedor de geocodificação e roteamento tem o seu próprio formato REST, chaves e peculiaridades. Os componentes de serviço os escondem: você escolhe um provedor, define a sua chave quando ele exige uma e chama os mesmos métodos, de forma síncrona ou assíncrona. Trocar de um provedor para outro é uma mudança de propriedade, não uma reescrita, e os resultados voltam como objetos Delphi prontos para colocar no mapa. Todos os componentes compartilham a classe base TsgcMapService, então ApiKey, UserAgent e LastError funcionam da mesma forma para todos os provedores.

  • TsgcMapGeocoder: Nominatim, Google, HERE, Azure Maps, Mapbox, OpenRouteService e Geoapify
  • TsgcMapDirections: OSRM, OpenRouteService, Google Routes, HERE, Azure Maps, Mapbox e Geoapify
  • TsgcMapPlaces para preenchimento automático de endereços, TsgcMapElevation e TsgcMapTimeZone
  • GeocodeAsync, GetRouteAsync e SuggestAsync mantêm a interface responsiva; os erros chegam em OnError
Ler o tópico da ajuda

Busca e roteamento Somente Registrada

Rotas e busca de endereços sem internet e sem chave

O roteamento online falha exatamente onde os aplicativos de campo são usados, e cada requisição pode custar dinheiro. O roteador offline calcula rotas de carro, bicicleta e a pé no próprio dispositivo, a partir de um grafo de rotas criado uma vez a partir de um extrato do OpenStreetMap. O geocodificador offline procura nomes de lugares e faz a geocodificação reversa de um clique a partir de um índice GeoNames em SQLite. Os dois funcionam sem rede, sem conta e sem tarifa por requisição. O roteador e o geocodificador são componentes não visuais, então um serviço do Windows ou uma ferramenta de console pode responder a pedidos de rota e de endereço sem nenhum mapa na tela.

  • O TsgcMapOfflineRouter responde a GetRoute a partir de um grafo criado pelo TsgcMapRouteGraphBuilder a partir de .osm.pbf
  • sgcMapAddRouteToPolylines desenha o resultado no mapa
  • TsgcMapOfflineGeocoder com ReverseGeocode, sobre um índice do TsgcMapGeoIndexBuilder
  • Os construtores de linha de comando do grafo e do índice estão na pasta Tools

A Community usa os serviços online; o roteador e o geocodificador offline pertencem ao pacote offline.

Ler o tópico da ajuda

Arquivos, renderização e dispositivos móveis

Troque dados geográficos com outras ferramentas, renderize mapas onde não há tela e leve o mapa a um celular.

Arquivos, renderização e dispositivos móveis

Abra os arquivos que os seus usuários já têm

Os clientes enviam trilhas de um relógio GPS, zonas desenhadas em uma ferramenta de GIS ou um KML de outro sistema. O sgcMaps lê e grava GeoJSON, GPX e KML direto no modelo do mapa, então uma importação é uma chamada e uma exportação é outra. As trilhas GPX vêm com as suas estatísticas e podem ser coloridas por elevação, e um leitor em streaming percorre grandes extratos do OpenStreetMap sem carregá-los na memória. As exportações usam as mesmas funções no sentido inverso, de modo que as zonas que um usuário desenhou no mapa podem ser salvas como GeoJSON ou KML e abertas em outras ferramentas de GIS.

  • sgcMapLoadGeoJSONFile e sgcMapSaveGeoJSONFile, a partir do Delphi XE6
  • TsgcMapGPX com TrackStats (TotalAscent, TotalDescent) e ColorByElevation
  • sgcMapLoadKMLFile e sgcMapSaveKMLFile
  • O leitor do OpenStreetMap processa arquivos .osm.pbf e XML em streaming por meio de eventos
  • sgcMapGeoJSONAsText retorna o GeoJSON do mapa como texto
Ler o tópico da ajuda
Renderize imagens de mapa em um servidor

Arquivos, renderização e dispositivos móveis

Renderize imagens de mapa em um servidor

Notas de entrega com a rota, um relatório diário com as ocorrências de hoje, uma miniatura para uma página web: muitos mapas nunca são mostrados em uma janela. O mesmo controle renderiza para um PNG ou um bitmap sem estar visível, a partir de um aplicativo de console ou de um serviço do Windows. Você pode verificar se todos os tiles chegaram antes de enviar a imagem, de modo que um servidor de tiles lento nunca acabe como um quadrado cinza em um documento do cliente. A renderização no servidor usa as mesmas camadas, marcadores e formas do controle interativo, então um mapa projetado na tela fica igual no PNG.

  • SaveToPNG e SaveToPNGFile, a partir do Delphi 2009
  • RenderToBitmap e SaveToBMPFile para o seu próprio pipeline
  • LastRenderMissingTiles informa os tiles que não estavam disponíveis
  • No .NET, MapView.RenderToPng também funciona no Linux
Ler o tópico da ajuda

Arquivos, renderização e dispositivos móveis

O mesmo mapa no desktop e no celular

Um despachante planeja em um desktop Windows e o motorista segue o plano em um celular. O TsgcFMXMap leva o mesmo modelo, camadas, marcadores, formas e serviços ao FireMonkey em Windows, macOS, iOS e Android, de modo que o código que você escreveu para o mapa VCL é aproveitado. O TsgcMapLocation lê a posição do dispositivo, para que o mapa possa se centralizar no usuário e segui-lo. O cache de tiles por camada também funciona no celular, então o aparelho continua mostrando as áreas que já carregou.

  • TsgcFMXMap a partir do Delphi XE6, com as mesmas coleções do TsgcVCLMap
  • TsgcMapLocation no Windows, Android, iOS e macOS
  • O demo FMX mostra tiles, marcadores e localização em um único formulário
  • As versões mínimas do Delphi por recurso estão listadas no tópico de instalação
Ler o tópico da ajuda

Acessibilidade

UI Automation para leitores de tela e o teclado, sem nenhuma configuração.

Acessibilidade

Um mapa que o teclado alcança e que o UI Automation expõe

O sgcMaps expõe o mapa ao Microsoft UI Automation com uma alternativa em texto, os marcadores como uma lista e as camadas como uma lista, em que cada camada informa se está visível. Os marcadores podem ser alcançados pelo teclado.

  • As setas deslocam o mapa, as teclas de mais e de menos dão zoom, e Home volta à visão inicial
  • Page Up e Page Down movem para o marcador anterior ou seguinte, Enter ativa o marcador com foco e Esc limpa o foco do marcador
  • O mapa mostra um anel de foco visível enquanto tem o foco
  • No .NET, o sgcMaps é um controle WinForms, portanto o mapa é acessível no WinForms

A acessibilidade vem ativada por padrão em todas as edições, inclusive a edição Community gratuita, no VCL em todas as versões do Delphi e do C++Builder do Delphi 7 ao Delphi 13, no FireMonkey no Windows e no WinForms. No Delphi e no C++Builder, AccessibleName e AccessibleDescription definem o nome e a descrição expostos ao UI Automation, e no .NET o nome acessível e o texto de ajuda padrão de cada framework fazem o mesmo. Veja os relatórios de conformidade de acessibilidade. A imagem do mapa é descrita somente pelo seu centro e zoom, e o renderizador do mapa não segue o alto contraste do Windows, porque a imagem do mapa são tiles do provedor.

Leia o tópico da ajuda

Veja o sgcMaps em ação

sgcMaps dentro das demos da suíte sgcUI: aplicações completas que rodam offline com dados simulados integrados.

Quem cria com o sgcMaps

Serviço de campo e logística

Técnicos e motoristas precisam do mapa onde a cobertura é ruim. Prepare os tiles de uma região com antecedência, calcule rotas de carro no próprio dispositivo com o roteador offline e encontre endereços com o geocodificador offline. De volta ao escritório, o mesmo código desenha as rotas planejadas e as zonas de entrega, e renderiza um PNG de cada rota para a nota de entrega.

  • Funciona offline
  • Roteamento offline
  • Rotas e zonas
  • Imagens de mapa
Execute o demo OfflineServices

Rastreamento de ativos e frotas

Uma central de controle observa centenas de veículos, máquinas ou sensores ao mesmo tempo. O agrupamento mantém o mapa legível no nível do país e se divide em pinos individuais no nível da rua. Um mapa de calor mostra onde as ocorrências se concentram, as verificações de geofence com ponto em polígono geram alertas, e os eventos de clique nos marcadores abrem o registro do ativo nos seus próprios formulários.

  • Agrupamento
  • Mapas de calor
  • Geometria
  • Eventos
Execute o demo MapFeatures

GIS leve e aplicativos ao ar livre

Ferramentas de planejamento, aplicativos esportivos e software de levantamento vivem de trilhas GPX, camadas KML e zonas GeoJSON. O sgcMaps importa e exporta os três, mostra estatísticas de trilha e cores de elevação, e coloca o resultado sobre um mapa base topográfico. O controle FireMonkey leva os mesmos recursos a um tablet ou a um celular em campo. As estatísticas da trilha dão a subida e a descida totais de uma rota de relance.

  • GeoJSON, GPX e KML
  • Tiles topográficos
  • FireMonkey
Execute o demo 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;

Ler o tópico da ajuda →

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

Ler o tópico da ajuda →

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

Ler o tópico da ajuda →

Execute os demos do sgcMaps

Sete demos Delphi e três demos .NET acompanham o sgcMaps. Não há projetos de demo C++ Builder.

Somente Registrada OfflineMap

Tiles de pasta, MBTiles e online, marcadores e formas, além da importação de GeoJSON, GPX e KML.

MapFeatures

Provedores e chaves de API, agrupamento de marcadores, edição de formas, mapas de calor e exportação de imagem.

Services

Busca de lugares, geocodificação, rotas, elevação, fusos horários e localização do dispositivo com os provedores online. Delphi XE8 e posteriores.

Somente Registrada OfflineServices

Crie um índice GeoNames e um grafo de rotas do OpenStreetMap, depois busque lugares e trace rotas de carro, bicicleta ou a pé sem rede.

StaticRender

StaticRender

Um programa de console que renderiza um mapa em um arquivo PNG ou BMP sem janela.

FMX

O mapa FireMonkey com tiles, marcadores e localização do dispositivo, para Windows, macOS, iOS e Android. Delphi XE6 e posteriores.

VectorTiles

VectorTiles

Um servidor de tiles vetoriais desenhado com o estilo embutido ou um arquivo de estilo próprio, com rótulos nítidos em todos os níveis de zoom.

WinFormsDemo

O SgcMapControl do .NET em uma janela WinForms com provedores, marcadores e formas.

Somente Registrada OfflineDemo

O pacote offline do .NET: tiles, roteamento e geocodificação offline a partir de arquivos de dados locais.

ConsoleRenderDemo

ConsoleRenderDemo

Um console .NET que renderiza um mapa em PNG com o MapView headless, no Windows ou no Linux.

Demos compilados

Executáveis prontos para rodar de todos os produtos sgcUI, sem nada para instalar.

Baixar sgcUI_bin.zip →

Onde o sgcMaps está incluído

O sgcMaps faz parte do sgcUI Enterprise e também é vendido separadamente. O sgcMaps também está incluído no pacote All-Access.

sgcMaps pacote individual

€149 / desenvolvedor, código-fonte completo, 1 ano de atualizações.

Comprar o sgcMaps → Ver preços →

sgcUI Enterprise

Todos os 14 produtos sgcUI, a partir de €699.

Ver Enterprise →

A edição Community gratuita (instalador Delphi e NuGet esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community, esegece.sgcMaps.WinForms.Community) tem todos os recursos, exceto o pacote offline. O pacote esegece.sgcMaps.Offline é somente Registrada. Um projeto referencia os pacotes Community ou os Registrada, nunca os dois.

RecursoCommunity (gratuita)Registrada
Controles de mapa VCL, FireMonkey e WinForms✓✓
Provedores de tiles, servidores de tiles HTTP e vetoriais✓✓
Pastas de tiles z/x/y e o cache de tiles por camada✓✓
Marcadores, agrupamento, formas, rótulos e mapas de calor✓✓
Funções de geometria✓✓
Importação e exportação de GeoJSON, GPX e KML✓✓
Geocodificação, rotas, lugares, elevação e fusos horários online✓✓
Renderização estática para PNG✓✓
Downloader de tiles para pacotes offline−✓
Arquivos MBTiles (raster e vetoriais)−✓
Roteador offline e geocodificador offline−✓

Frameworks e plataformas suportados

Componentes do sgcMaps

TsgcVCLMap and TsgcFMXMap

Os controles de mapa para VCL e FireMonkey, além de um controle LCL do Lazarus que lê tiles do disco.

Coleções do modelo

Layers, Markers, Polylines, Polygons, Rectangles, Circles, Labels e Heatmaps, compartilhados por todos os frameworks.

Serviços online

TsgcMapGeocoder, TsgcMapDirections, TsgcMapPlaces, TsgcMapElevation e TsgcMapTimeZone.

Ferramentas offline

TsgcMapRouteCalculator, TsgcMapOfflineRouter, TsgcMapOfflineGeocoder, TsgcMapGeoIndexBuilder e TsgcMapTileDownloader.

TsgcMapLocation e auxiliares de geometria

Localização do dispositivo, e sgcMapDistance, rumo, ponto de destino, interpolação geodésica, ponto em polígono e simplificação de linhas.

Mapas .NET

SgcMapControl para WinForms, e MapView, o motor headless que renderiza em PNG, também no Linux.

DestinoComponentePlataformas
Delphi 7 a 13, VCLTsgcVCLMap e o modeloWin32, e Win64 a partir do XE2
Delphi XE6 a 13, FireMonkeyTsgcFMXMapWindows, macOS, iOS e Android, localização do dispositivo em Windows, Android, iOS e macOS
C++ Builder 2007 a 13TsgcVCLMap e o modeloCabeçalhos .hpp gerados e bibliotecas estáticas
LazarusControle de mapa LCLTiles somente do disco, não consegue baixar tiles
.NET 8, 9 e 10SgcMapControl, MapViewWinForms (net8.0-windows, net9.0-windows, net10.0-windows), PNG headless no Windows e no Linux

Perguntas frequentes

Não. Os tiles, marcadores e formas são desenhados nativamente pelo controle, então não há web view, nem biblioteca JavaScript, nem runtime de navegador para implantar.

Não para o OpenStreetMap, o OpenTopoMap e os tiles da Esri, nem para o roteador e o geocodificador offline. Os tiles do MapTiler, do Thunderforest e do Stadia, e os provedores comerciais de geocodificação e roteamento, usam a sua própria chave. Cada provedor mantém os seus próprios termos de uso, que o seu aplicativo precisa respeitar.

Sim. Os tiles podem vir de pastas z/x/y, de um cache por camada ou de arquivos MBTiles, as rotas do TsgcMapOfflineRouter e a busca de endereços do TsgcMapOfflineGeocoder. O MBTiles, o downloader de tiles e o roteador e o geocodificador offline fazem parte do pacote offline da edição Registrada.

GeoJSON, GPX e KML, para importação e exportação, com estatísticas de trilha GPX e cores de elevação. Um leitor em streaming também processa arquivos .osm.pbf e XML do OpenStreetMap, que é como o grafo de rotas offline é criado. Veja Formatos de arquivo.

O modelo e o controle VCL funcionam a partir do Delphi 7 e do C++ Builder 2007. Alguns recursos têm um mínimo mais alto: saída PNG e servidores de tiles a partir do Delphi 2009, tiles vetoriais e o roteador offline a partir do XE2, FireMonkey e GeoJSON a partir do XE6, MBTiles e o geocodificador offline a partir do XE7, serviços online a partir do XE8.

Os projetos de demo são apenas em Delphi, mas os componentes se instalam no C++ Builder 2007 a 13 e funcionam da mesma forma. A aba C++ Builder na seção de código acima mostra o mesmo mapa criado com os cabeçalhos gerados.

Sim. A edição Community é gratuita para pessoas físicas e organizações com receita bruta anual abaixo de 1 milhão de euros e no máximo 5 desenvolvedores. Ela tem todos os recursos, exceto o pacote offline. No .NET, os pacotes são esegece.sgcMaps.Community, esegece.sgcMaps.Rendering.Community e esegece.sgcMaps.WinForms.Community. Organizações maiores precisam de uma licença Registrada.

Ajuda do sgcMaps

3,000+Desenvolvedores
20+Anos
761+Componentes
30+Integrações de API
5Plataformas
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

Experimente o sgcMaps hoje

A avaliação do sgcUI inclui o sgcMaps com o pacote offline e todos os outros produtos sgcUI. A edição .NET Community é gratuita no NuGet.