Konwertuj plik Shapefile na KML w C#

Możemy mieć dane geograficzne dostępne w wielu formatach obsługiwanych przez różne systemy. W niektórych przypadkach może być konieczne wyeksportowanie danych geograficznych z formatu ESRI Shapefile (SHP) do formatu Keyhole Markup Language (KML). Format Shapefile to jeden z najpopularniejszych formatów wektorowych danych geoprzestrzennych firmy ESRI używanych do wyświetlania informacji geograficznych. KML to format oparty na XML, używany do udostępniania danych geograficznych użytkownikom spoza GIS. Format KML służy do wyświetlania danych geograficznych w Google Earth lub Google Maps. W tym artykule dowiemy się, jak przekonwertować plik kształtu na KML w języku C#.

Ten artykuł obejmuje następujące tematy:

  1. C# Shapefile to KML Converter
  2. Kroki, aby przekonwertować plik Shapefile na KML
  3. Eksportuj plik kształtu do KML

C# Shapefile to KML Converter API — bezpłatne pobieranie

Aby przekonwertować plik kształtu na KML, użyjemy API Aspose.GIS for .NET. Umożliwia eksportowanie plików shape do formatu KML bez konieczności używania oprogramowania takiego jak ArcGIS, ArcMap, QGIS lub Google Earth. API umożliwia również renderowanie map, tworzenie, odczytywanie i konwertowanie danych geograficznych dostępnych w obsługiwanych formatach plików.

Klasa ConversionOptions interfejsu API udostępnia opcje konwersji danych między formatami. Klasa SpatialReferenceSystem udostępnia listę różnych systemów odniesień przestrzennych, których można użyć do mapowania współrzędnych miejsc na Ziemi. Mamy klasę VectorLayer, która reprezentuje warstwę wektorową w API. Metoda Convert(string, FileDriver, string, FileDriver, ConversionOptions) tej klasy konwertuje warstwę na inny format.

Pobierz bibliotekę DLL interfejsu API lub zainstaluj ją za pomocą NuGet.

PM> Install-Package Aspose.GIS

Jak przekonwertować plik Shapefile na KML w C#

Możemy łatwo przekonwertować plik kształtu na KML za pomocą Aspose.GIS for .NET, wykonując poniższe czynności:

  • Przypisz odniesienie przestrzenne Wgs84 do warstwy docelowej.
  • Załaduj i przekonwertuj format pliku z SHP na KML.

Zobaczmy teraz, jak wykonać te kroki w języku C#, aby przekonwertować plik kształtu na format KML.

Eksportuj ShapeFile do KML w C#

Wykonaj poniższe czynności, aby wyeksportować dane z pliku shape do KML:

  1. Zainicjuj wystąpienie klasy ConversionOptions.
  2. Ustaw DestinationSpatialReferenceSystem na Wgs84.
  3. Na koniec wywołaj metodę VectorLayer.Convert(), aby przekonwertować źródłowy plik kształtu na format KML.

Poniższy przykładowy kod pokazuje, jak przekonwertować plik kształtu na KML przy użyciu języka C#.

// Ten przykład kodu pokazuje, jak przekonwertować plik kształtu na KML w języku C#.
// Katalog roboczy
string dataDir = @"C:\Files\GIS\";

// W razie potrzeby określ ustawienia konwersji. Jest to opcjonalne.
ConversionOptions options = null;

// Konwersja może spowodować błąd, jeśli warstwa docelowa nie obsługuje odniesienia przestrzennego Wgs84. Więc trzeba sprawdzić.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    // Przypisz Wgs84 do warstwy docelowej
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Konwertuj plik Shape na KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak przekonwertować plik kształtu na KML w języku C#. Widzieliśmy również, jak programowo zdefiniować opcje konwersji. Poza tym możesz dowiedzieć się, jak pracować z kilkoma innymi formatami plików GIS i dowiedzieć się więcej o Aspose.GIS for .NET API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym forum.

Zobacz też