Konwertuj OSM na KML w C#

OpenStreetMap (OSM) to projekt typu open source. Ma na celu stworzenie bezpłatnej, edytowalnej geograficznej bazy danych całego świata. Plik OpenStreetMap (.osm) jest wyciągiem z bazy danych OpenStreetMap przechowywanym w formacie XML. W niektórych przypadkach może być konieczne wyeksportowanie danych mapy z OSM w celu wyświetlenia ich w Google Earth. Google Earth używa plików KML do wyświetlania danych geograficznych. W tym artykule dowiemy się, jak przekonwertować OSM na KML w C#.

Ten artykuł obejmuje następujące tematy:

  1. Konwerter C# OSM na KML
  2. Kroki konwersji OSM na KML
  3. Konwertuj OSM na KML

Interfejs API konwertera C# OSM na KML — bezpłatne pobieranie

Do konwersji pliku OpenStreetMap (OSM) na KML użyjemy API Aspose.GIS for .NET. API umożliwia eksportowanie OSM do KML bez konieczności używania oprogramowania takiego jak ArcGIS, ArcMap, QGIS lub Google Earth. Umożliwia także renderowanie map, tworzenie, odczytywanie i konwertowanie danych geograficznych dostępnych w obsługiwanych formatach plików.

Interfejs API udostępnia klasę VectorLayer, która reprezentuje warstwę wektorową. Zapewnia Convert(string, FileDriver, string, FileDriver, ConversionOptions), który konwertuje warstwę na inny format. Klasa SpatialReferenceSystem udostępnia listę różnych systemów odniesień przestrzennych, które mają być używane na mapie.

Proszę pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

PM> Install-Package Aspose.GIS

Jak przekonwertować OSM na KML w C#

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

  1. Przypisz odniesienie przestrzenne Wgs84 do warstwy docelowej.
  2. Konwertuj format pliku z OSM na KML.

W poniższej sekcji opisano, jak przekształcić te kroki w język C# i przekonwertować format OSM na format KML.

Konwertuj OSM na KML w C#

Możemy wyeksportować dane z OSM do KML, wykonując poniższe czynności:

  1. Najpierw utwórz instancję klasy ConversionOptions.
  2. Następnie ustaw DestinationSpatialReferenceSystem na Wgs84.
  3. Na koniec wywołaj metodę VectorLayer.Convert(), aby przekonwertować źródłowy OSM na KML.

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

// Ten przykład kodu pokazuje, jak przekonwertować OSM na KML.
// W razie potrzeby określ ustawienia konwersji. Jest to opcjonalne.
ConversionOptions options = null;

// Ta opcja przypisuje Wgs84 do warstwy docelowej.
// 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))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Konwertuj format pliku z OSM na KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\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ć OSM na KML w C#. Poza tym możesz dowiedzieć się, jak pracować z kilkoma innymi formatami plików GIS i dowiedzieć się więcej o interfejsie API, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.

Zobacz też