Representación de mapas

Map Rendering se refiere a hacer mapas visuales a partir de datos geoespaciales. Puede representar mapas de KML, GeoJSON, GeoTIFF, así como Shapefile en diferentes formatos de archivo. Puede representar mapas en diferentes formatos de imagen como PNG, SVG, JPG, etc. Las siguientes secciones elaborarán la representación del mapa en imágenes:

Representación de mapas de un Shapefile a imágenes: instalación de la API de C#

Aspose.GIS for .NET La API le permite trabajar con diferentes formatos de archivo geográficos y geoespaciales. Puede representar mapas desde formatos de archivo compatibles a SVG, PNG y otros formatos de archivo según sus requisitos. Configure la API descargándola desde la sección Nuevas versiones, o puede usar el siguiente comando de instalación NuGet en la consola del administrador de paquetes.

PM> Install-Package Aspose.GIS

Renderizar mapa de Shapefile a SVG programáticamente usando C#

Puede representar un mapa desde un archivo de forma a un archivo SVG con los siguientes pasos:

  1. Crea una nueva instancia de la clase Map.
  2. Cree una capa de mapa vectorial y agréguela al mapa.
  3. Renderice el mapa en un archivo.

El siguiente código explica cómo representar un mapa desde un Shapefile a SVG mediante programación usando C#;

// Crea una nueva instancia de la clase Map.
using (var map = new Rendering.Map(800, 400))
{
    // Cree una capa de mapa vectorial y agréguela al mapa.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Renderice el mapa en un archivo.
    map.Render("land_out.svg", Renderers.Svg);
}

Renderizar mapa de Shapefile a imagen PNG programáticamente en C#

Puede representar un mapa desde un archivo de forma a formatos de imagen ráster como PNG, JPG, BMP, etc. Los siguientes son los pasos para representar un mapa desde un archivo de forma a una imagen PNG:

  1. Inicialice el objeto de clase Map con dimensiones.
  2. Cree y agregue una capa de mapa vectorial.
  3. Renderiza el mapa a una imagen PNG.

El siguiente código muestra la representación del mapa desde Shapefile a una imagen PNG mediante programación usando C#:

// Inicialice el objeto de clase Map con dimensiones.
using (var map = new Rendering.Map(800, 400))
{
    // Crear y agregar una capa de mapa vectorial.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Renderiza el mapa a una imagen PNG.
    map.Render("land_out.png", Renderers.Png);
}

Renderizado de mapa personalizado con estilo avanzado usando C#

Puede personalizar la apariencia de un mapa con estilos de características avanzados. Siga los pasos a continuación para la representación personalizada del mapa:

  1. Inicialice el objeto de clase Map.
  2. Inicialice SimpleFill para un símbolo de polígono simple.
  3. Abra la capa desde el archivo de forma de entrada para leer.
  4. Renderice el mapa en un archivo.

El siguiente código explica cómo hacer un renderizado de mapa personalizado con estilo avanzado usando C#:

// Inicializa el objeto de la clase Map.
using (var map = new Rendering.Map(800, 476))
{
    // Inicie SimpleFill para el simbolizador de polígono simple.
    var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };

    // Abra la capa desde el archivo de forma de entrada para leer.
    map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

    // Inicialice una nueva instancia de la clase 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;
        }
    };

    // Agregue un VectorMapLayer al mapa.
    map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);

    // Renderiza el mapa en un archivo.
    map.Render("cities_out.svg", Renderers.Svg);
}

Renderizar mapa de formato GeoTIFF a SVG programáticamente usando C#

Puede renderizar un mapa de GeoTIFF a un archivo SVG con los siguientes pasos:

  1. Crear una instancia del objeto de clase Map.
  2. Abra la capa para leer usando el controlador para el formato GeoTIFF o TIFF.
  3. Renderiza el mapa en un archivo.

El fragmento de código a continuación muestra cómo representar un mapa del formato GeoTIFF a SVG mediante programación usando C#:

// Inicializa el objeto de la clase Map.
using (var map = new Rendering.Map(500, 500))
{
    // Abra la capa para leer usando el controlador para el formato GeoTIFF o TIFF.
    var layer = GeoTiff.OpenLayer("raster_float32.tif");
                
    // La conversión a colores se detecta automáticamente.
    // Se calculan los valores máximo y mínimo y se utiliza la interpolación lineal.
    map.Add(layer);

    // Renderiza el mapa en un archivo.
    map.Render("raster_float32_out.svg", Renderers.Svg);
}

Obtenga una licencia de API gratuita

Puede evaluar la API con una licencia temporal gratuita para probar la API sin ninguna limitación.

Conclusión

En este artículo, aprendió la representación de mapas desde el formato shapefile o GeoTIFF a SVG, u otros formatos de imagen ráster como PNG, JPG, TIFF, etc. Puede explorar otras características de la API visitando la Documentación. No dude en contactarnos a través del Foro de soporte gratuito en caso de cualquier consulta.

Ver también