Renderowanie mapy

Renderowanie map odnosi się do tworzenia map wizualnych z danych geoprzestrzennych. Możesz renderować mapy z KML, GeoJSON, GeoTIFF, a także Shapefile do różnych formatów plików. Mapy można renderować do różnych formatów obrazów, takich jak PNG, SVG, JPG itp. Poniższe sekcje omówią renderowanie map do obrazów:

Renderowanie map z pliku Shape do obrazów – instalacja C# API

Aspose.GIS for .NET API umożliwia pracę z różnymi formatami plików geograficznych i geoprzestrzennych. Możesz renderować mapy z obsługiwanych formatów plików do SVG, PNG i innych formatów plików zgodnie z własnymi wymaganiami. Skonfiguruj interfejs API, pobierając go z sekcji New Releases lub użyj następującego polecenia instalacyjnego NuGet w konsoli menedżera pakietów.

PM> Install-Package Aspose.GIS

Renderuj mapę z Shapefile do SVG programowo przy użyciu C#

Możesz renderować mapę z pliku kształtu do pliku SVG, wykonując następujące czynności:

  1. Utwórz nową instancję klasy Map.
  2. Utwórz warstwę mapy wektorowej i dodaj ją do mapy.
  3. Wyrenderuj mapę do pliku.

Poniższy kod wyjaśnia, jak programowo renderować mapę z pliku Shapefile do SVG przy użyciu języka C#;

// Utwórz nową instancję klasy Map.
using (var map = new Rendering.Map(800, 400))
{
    // Utwórz warstwę mapy wektorowej i dodaj ją do mapy.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Wyrenderuj mapę do pliku.
    map.Render("land_out.svg", Renderers.Svg);
}

Renderuj mapę z Shapefile do obrazu PNG programowo w C#

Możesz renderować mapę z pliku kształtu do formatu obrazu rastrowego, takiego jak PNG, JPG, BMP itp. Poniżej przedstawiono kroki renderowania mapy z pliku kształtu do obrazu PNG:

  1. Zainicjuj obiekt klasy Map z wymiarami.
  2. Utwórz i dodaj warstwę mapy wektorowej.
  3. Renderuj mapę do obrazu PNG.

Poniższy kod pokazuje programowe renderowanie mapy z pliku Shapefile do obrazu PNG przy użyciu języka C#:

// Zainicjuj obiekt klasy Map z wymiarami.
using (var map = new Rendering.Map(800, 400))
{
    // Utwórz i dodaj warstwę mapy wektorowej.
    map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));

    // Renderuj mapę do obrazu PNG.
    map.Render("land_out.png", Renderers.Png);
}

Niestandardowe renderowanie map z zaawansowanym stylem przy użyciu języka C#

Możesz dostosować wygląd mapy za pomocą zaawansowanych stylów obiektów. Wykonaj poniższe czynności, aby uzyskać niestandardowe renderowanie mapy:

  1. Zainicjuj obiekt klasy Map.
  2. Zainicjuj SimpleFill dla prostego symbolizatora wielokątów.
  3. Otwórz warstwę z wejściowego pliku kształtu do odczytu.
  4. Wyrenderuj mapę do pliku.

Poniższy kod wyjaśnia, jak wykonać niestandardowe renderowanie mapy z zaawansowanym stylem przy użyciu języka C#:

// Zainicjuj obiekt klasy Map.
using (var map = new Rendering.Map(800, 476))
{
    // Zainicjuj SimpleFill dla prostego symbolizatora wielokątów.
    var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };

    // Otwórz warstwę z wejściowego pliku kształtu do odczytu.
    map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);

    // Zainicjuj nową instancję klasy 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;
        }
    };

    // Dodaj VectorMapLayer do mapy.
    map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);

    // Renderuj mapę do pliku.
    map.Render("cities_out.svg", Renderers.Svg);
}

Renderuj mapę z formatu GeoTIFF do SVG Programowo przy użyciu C#

Możesz renderować mapę z GeoTIFF do pliku SVG, wykonując następujące czynności:

  1. Utwórz instancję obiektu klasy Map.
  2. Otwórz warstwę do odczytu za pomocą sterownika formatu GeoTIFF lub TIFF.
  3. Renderuj mapę do pliku.

Poniższy fragment kodu pokazuje, jak programowo renderować mapę z formatu GeoTIFF do SVG przy użyciu języka C#:

// Zainicjuj obiekt klasy Map.
using (var map = new Rendering.Map(500, 500))
{
    // Otwórz warstwę do odczytu za pomocą sterownika formatu GeoTIFF lub TIFF.
    var layer = GeoTiff.OpenLayer("raster_float32.tif");
                
    // Konwersja na kolory jest wykrywana automatycznie.
    // Obliczane są wartości maksymalne i minimalne oraz stosowana jest interpolacja liniowa.
    map.Add(layer);

    // Renderuj mapę do pliku.
    map.Render("raster_float32_out.svg", Renderers.Svg);
}

Uzyskaj bezpłatną licencję API

Możesz ocenić interfejs API z Bezpłatną licencją tymczasową do testowania interfejsu API bez żadnych ograniczeń.

Wniosek

W tym artykule nauczyłeś się renderowania map z formatu shapefile lub GeoTIFF do SVG lub innych formatów obrazów rastrowych, takich jak PNG, JPG, TIFF itp. Możesz zapoznać się z innymi funkcjami interfejsu API, odwiedzając Dokumentacja. W przypadku jakichkolwiek pytań prosimy o kontakt za pośrednictwem Bezpłatne forum pomocy technicznej.

Zobacz też