sgcUI sgcMaps 现已发布

sgcMaps. 真正的地图。 内部没有浏览器。

原生绘制栅格和矢量瓦片,显示成千上万个聚合标记、路线和区域,对地址进行地理编码,并借助本地瓦片和离线路由在离线状态下继续工作。这是适用于 Delphi、C++ Builder 和 .NET 的原生地图控件,并附带源代码。

  • VCL
  • FireMonkey
  • Lazarus
  • WinForms
  • WPF
  • Avalonia
  • Delphi 7 至 13
  • .NET 8、9 和 10
  • 4个无需密钥的瓦片提供商:OpenStreetMap、OpenTopoMap 和两个 Esri 图层
  • 7个地理编码提供商共用一个 API,另有离线地理编码器
  • 4种可读写的地理数据格式:GeoJSON、GPX、KML 和 WKT,另支持导入 Shapefile
  • 4个 FireMonkey 地图支持的平台:Windows,以及自 Delphi 10.4 起的 macOS、iOS、Android

地图应用程序所需的一切。

瓦片、您自己的数据、搜索与路由、文件和图像。sgcMaps 用原生控件涵盖全部这些需求,无论在线还是完全没有网络。

  • 处处原生

    VCL、FireMonkey、Lazarus、WinForms、WPF 和 Avalonia 控件自己绘制地图。

  • 您的数据呈现在地图上

    通过代码或文件添加聚合标记、路线、区域、圆形、标签和热力图。

  • 离线可用

    磁盘上的瓦片、离线路由器和离线地理编码器,无需 API 密钥。

  • 地图变成图像

    在控制台、服务或 Linux .NET 进程中渲染 PNG 文件。

看它运行。

运行中的地图控件:瓦片提供商、矢量样式、叠加层和离线路由。

同一片马德里区域,分别用 OpenStreetMap、OpenTopoMap、Esri World Imagery 和 Esri World Street 瓦片渲染
瓦片与地图数据

用一个属性选择瓦片提供商。

  • 在图层上设置 Provider 并调用 sgcMapApplyProvider:URL 模板、最大缩放级别和版权署名随之而来。
  • OpenStreetMap、OpenTopoMap、Esri World Imagery 和 Esri World Street 无需密钥即可使用。MapTiler、Thunderforest 和 Stadia 则使用您自己的密钥。
  • mtpCustom 配合 URLTemplate 可读取任何 {z}/{x}/{y} 服务器,ShowLayerSwitcher 让用户在地图上切换图层。
由 sgcMaps 绘制的矢量瓦片地图,道路、水域和标签清晰锐利
矢量瓦片

无论多大尺寸都保持清晰的矢量瓦片。

  • mtsVectorHTTP 读取 Mapbox 矢量瓦片服务器,mtsVectorMBTiles 读取本地矢量 MBTiles 文件。
  • 将 VectorStyleFile 留空即使用内置样式,或加载 MapLibre 或 Mapbox GL 样式以匹配您的品牌。
  • 控件自己绘制道路、水域、建筑和标签,因此在高 DPI 屏幕和导出的图像中文字都保持清晰。
绘制在同一张地图上的折线、多边形和热力图
您的数据呈现在地图上

路线、区域和热力图集于一张地图。

  • AddPolyline 支持虚线和大地线,AddPolygon 支持带孔多边形,另有 AddRectangle、AddCircle 和 AddLabel。
  • 可编辑的形状让用户拖动区域的顶点,编辑结束时 OnShapeEdited 会通知您的代码。
  • TsgcMapHeatmap 接受带权重的点,MarkerOptions.Clustering 把相邻标记合并为带数字的气泡。
OfflineServices 演示:在安道尔地图上进行离线地点搜索、逆地理编码和驾车路线规划
离线可用

无需互联网和密钥的路线与地址搜索。

  • TsgcMapOfflineRouter 根据由 OpenStreetMap 提取数据一次性构建的图,计算驾车、骑行和步行路线。
  • TsgcMapOfflineGeocoder 搜索地名,并基于 SQLite 中的 GeoNames 索引对点击位置进行逆地理编码。
  • TsgcMapTileDownloader 提前把某个区域和缩放范围下载到文件夹或 MBTiles 文件中。

几行代码实现地图。

OpenStreetMap 瓦片、三个标记、一条大地线和一个半径范围,缩放以适应标记并保存为 PNG。Delphi、C++ Builder 和 C# 中的 API 相同。

dotnet add package esegece.sgcMaps.Rendering

C++ Builder 和 C# 版本

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;

sgcUI 的一部分。

可单独购买 sgcMaps,也可在 sgcUI Enterprise 中与其他所有 sgcUI 产品一起获得,共用同一个主题和运行时。均附带源代码。

单独购买

sgcMaps

单独的地图控件,包含完整源代码和 1 年更新。

€149 / 每位开发者
sgcMaps 价格

Standard

sgcGrid、sgcNavigation、sgcToolbar 和 sgcEditors。

€380 / 每位开发者
查看 Standard

Professional

Standard 加上 sgcCharts、sgcDashboard 和 sgcGauges。

€529 / 每位开发者
查看 Professional
包含 sgcMaps

Enterprise

全部 16 款 sgcUI 产品。

€699 / 每位开发者
查看 Enterprise

Community 版免费,包含除离线包之外的所有功能;对于 .NET,它是 NuGet 上的 esegece.sgcMaps.Community。sgcMaps 也包含在 All-Access 套餐。

了解 sgcUI

今天就把 sgcMaps 用到您自己的应用程序中。

试用版包含离线包。运行 MapFeatures、OfflineMap 和 OfflineServices 演示,或者先浏览所有功能。

博客最新动态

查看全部文章 →

您正在查看 eSeGeCe 的 sgcMaps 视角。

换个角度看看 →
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策