地图渲染

地图渲染是指从地理空间数据制作可视化地图。您可以将 KMLGeoJSON、GeoTIFF 以及 Shapefile 中的地图渲染为不同的文件格式。您可以将地图渲染为不同的图像格式,例如 PNGSVGJPG 等。以下部分将详细说明地图渲染为图像:

从 Shapefile 到图像的映射渲染 – C# API 安装

Aspose.GIS for .NET API 让您可以使用不同的地理和地理空间文件格式。您可以根据需要将支持的文件格式的地图渲染为 SVG、PNG 和其他文件格式。请通过从 New Releases 部分下载来配置 API,或者您可以在包管理器控制台上使用以下 NuGet 安装命令。

PM> Install-Package Aspose.GIS

使用 C# 以编程方式将 Map 从 Shapefile 渲染到 SVG

您可以通过以下步骤将地图从 shapefile 渲染到 SVG 文件:

  1. 创建 Map 类的新实例。
  2. 创建矢量图层并将其添加到地图中。
  3. 将地图渲染到文件中。

下面的代码详细说明了如何使用 C# 以编程方式将地图从 Shapefile 渲染到 SVG;

// 创建 Map 类的新实例。
using (var map = new Rendering.Map(800, 400))
{
    // 创建矢量图层并将其添加到地图。
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // 将地图渲染到文件中。
    map.Render("land_out.svg", Renderers.Svg);
}

在 C# 中以编程方式将 Shapefile 中的地图渲染为 PNG 图像

您可以将地图从 shapefile 渲染为光栅图像格式,例如 PNG、JPG、BMP 等。以下是将地图从 shapefile 渲染为 PNG 图像的步骤:

  1. 用维度初始化 Map 类对象。
  2. 创建并添加矢量图层。
  3. 将地图渲染为 PNG 图像。

以下代码显示了使用 C# 以编程方式从 Shapefile 到 PNG 图像的地图渲染:

// 用维度初始化 Map 类对象。
using (var map = new Rendering.Map(800, 400))
{
    // 创建并添加矢量图层。
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // 将地图渲染为 PNG 图像。
    map.Render("land_out.png", Renderers.Png);
}

使用 C# 使用高级样式自定义地图渲染

您可以使用高级要素样式自定义地图的外观。请按照以下步骤进行自定义地图渲染:

  1. 初始化 Map 类对象。
  2. 为简单的多边形符号器初始化 SimpleFill
  3. 从输入 shapefile 打开图层以进行读取。
  4. 将地图渲染到文件中。

下面的代码解释了如何使用 C# 以高级样式进行自定义地图渲染:

// 初始化 Map 类对象。
using (var map = new Rendering.Map(800, 476))
{
    // 为简单的多边形符号初始化 SimpleFill。
    var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };

    // 从输入 shapefile 打开图层进行读取。
    map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

    // 初始化 SimpleMarker 类的新实例。
    var citiesSymbolizer = new Rendering.Symbolizers.SimpleMarker() { FillColor = Color.LightBlue };
    citiesSymbolizer.FeatureBasedConfiguration = (feature, symbolizer) =>
    {
        var population = feature.GetValue<int>("population");
        symbolizer.Size = 10 * population / 1000;
        if (population < 2500)
        {
            symbolizer.FillColor = Color.GreenYellow;
        }
    };

    // 将 VectorMapLayer 添加到地图。
    map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);

    // 将地图渲染到文件中。
    map.Render("cities_out.svg", Renderers.Svg);
}

使用 C# 以编程方式将 GeoTIFF 格式的地图渲染为 SVG

您可以通过以下步骤将地图从 GeoTIFF 渲染为 SVG 文件:

  1. 实例化 Map 类对象。
  2. 使用 GeoTIFF 或 TIFF 格式的驱动程序打开图层进行读取。
  3. 将地图渲染到文件中。

下面的代码片段演示了如何使用 C# 以编程方式将地图从 GeoTIFF 格式渲染为 SVG:

// 初始化 Map 类对象。
using (var map = new Rendering.Map(500, 500))
{
    // 使用 GeoTIFF 或 TIFF 格式的驱动程序打开图层以进行读取。
    var layer = GeoTiff.OpenLayer("raster_float32.tif");
                
    // 自动检测到颜色的转换。
    // 计算最大值和最小值并使用线性插值。
    map.Add(layer);

    // 将地图渲染到文件中。
    map.Render("raster_float32_out.svg", Renderers.Svg);
}

获取免费 API 许可证

您可以使用 免费临时许可证 评估 API,以不受任何限制地测试 API。

结论

在本文中,您学习了从 shapefile 或 GeoTIFF 格式到 SVG 或其他光栅图像格式(如 PNG、JPG、TIFF 等)的地图渲染。您可以通过访问 文档 探索 API 的其他功能。如有任何疑问,请随时通过 免费支持论坛 与我们联系。

也可以看看