Renderização do mapa

Map Rendering refere-se a fazer mapas visuais a partir de dados geoespaciais. Você pode renderizar mapas de KML, GeoJSON, GeoTIFF, bem como Shapefile para diferentes formatos de arquivo. Você pode renderizar mapas para diferentes formatos de imagem como PNG, SVG, JPG, etc. As seções a seguir elaborarão a renderização do mapa para imagens:

Renderização de mapa de um shapefile para imagens – instalação da API C#

Aspose.GIS for .NET API permite trabalhar com diferentes formatos de arquivos geográficos e geoespaciais. Você pode renderizar mapas de formatos de arquivo suportados para SVG, PNG e outros formatos de arquivo conforme suas necessidades. Configure a API baixando-a da seção New Releases, ou você pode usar o seguinte comando de instalação NuGet no console do gerenciador de pacotes.

PM> Install-Package Aspose.GIS

Renderize o mapa do Shapefile para SVG programaticamente usando C#

Você pode renderizar o mapa de um shapefile para um arquivo SVG com as seguintes etapas:

  1. Crie uma nova instância da classe Map.
  2. Crie uma camada de mapa vetorial e adicione-a ao mapa.
  3. Renderize o mapa em um arquivo.

O código abaixo explica como renderizar um mapa de um Shapefile para SVG programaticamente usando C#;

// Crie uma nova instância da classe Map.
using (var map = new Rendering.Map(800, 400))
{
    // Crie uma camada de mapa vetorial e adicione-a ao mapa.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Renderize o mapa em um arquivo.
    map.Render("land_out.svg", Renderers.Svg);
}

Renderize o mapa do Shapefile para a imagem PNG programaticamente em C#

Você pode renderizar o mapa de um shapefile para formatos de imagem raster como PNG, JPG, BMP, etc. A seguir estão as etapas para renderizar o mapa de shapefile para imagem PNG:

  1. Inicialize o objeto da classe Map com dimensões.
  2. Crie e adicione uma camada de mapa vetorial.
  3. Renderize o mapa para uma imagem PNG.

O código a seguir mostra a renderização do mapa de Shapefile para imagem PNG programaticamente usando C#:

// Inicialize o objeto da classe Map com dimensões.
using (var map = new Rendering.Map(800, 400))
{
    // Crie e adicione uma camada de mapa vetorial.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Renderize o mapa para uma imagem PNG.
    map.Render("land_out.png", Renderers.Png);
}

Renderização de mapa personalizado com estilo avançado usando C#

Você pode personalizar a aparência de um mapa com estilos de recursos avançados. Siga as etapas abaixo para renderização de mapa personalizado:

  1. Inicialize o objeto de classe Map.
  2. Inicialize SimpleFill para um simbolizador de polígono simples.
  3. Abra a camada do shapefile de entrada para leitura.
  4. Renderize o mapa em um arquivo.

O código abaixo explica como fazer renderização de mapa personalizado com estilo avançado usando C#:

// Inicialize o objeto da classe Map.
using (var map = new Rendering.Map(800, 476))
{
    // Inicialize SimpleFill para o simbolizador de polígono simples.
    var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };

    // Abra a camada do shapefile de entrada para leitura.
    map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

    // Inicialize uma nova instância da classe 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;
        }
    };

    // Adicione um VectorMapLayer ao mapa.
    map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);

    // Renderize o mapa em um arquivo.
    map.Render("cities_out.svg", Renderers.Svg);
}

Renderize o mapa do formato GeoTIFF para SVG programaticamente usando C#

Você pode renderizar um mapa de GeoTIFF para arquivo SVG com as seguintes etapas:

  1. Instanciar objeto de classe Map.
  2. Abra a camada para leitura usando o driver para o formato GeoTIFF ou TIFF.
  3. Renderize o mapa em um arquivo.

O trecho de código abaixo demonstra como renderizar o mapa do formato GeoTIFF para SVG programaticamente usando C#:

// Inicialize o objeto da classe Map.
using (var map = new Rendering.Map(500, 500))
{
    // Abra a camada para leitura usando o driver para o formato GeoTIFF ou TIFF.
    var layer = GeoTiff.OpenLayer("raster_float32.tif");
                
    // A conversão para cores é detectada automaticamente.
    // Os valores máximo e mínimo são calculados e a interpolação linear é usada.
    map.Add(layer);

    // Renderize o mapa em um arquivo.
    map.Render("raster_float32_out.svg", Renderers.Svg);
}

Obtenha licença de API gratuita

Você pode avaliar a API com uma Licença Temporária Gratuita para testar a API sem quaisquer limitações.

Conclusão

Neste artigo, você aprendeu a renderização de mapas do formato shapefile ou GeoTIFF para SVG, ou outros formatos de imagem raster como PNG, JPG, TIFF, etc. Você pode explorar outros recursos da API visitando a Documentação. Sinta-se à vontade para nos contatar via Fórum de suporte gratuito em caso de dúvidas.

Veja também