Konvertera OSM till KML i C#

OpenStreetMap (OSM) är ett projekt med öppen källkod. Det syftar till att skapa en gratis, redigerbar geografisk databas över hela världen. OpenStreetMap-filen (.osm) är ett utdrag av OpenStreetMap-databasen lagrad som XML. I vissa fall kan vi behöva exportera kartdata från OSM för visning på Google Earth. Google Earth använder KML-filer för att visa geografiska data. I den här artikeln kommer vi att lära oss hur man konverterar en OSM till KML i C#.

Den här artikeln ska täcka följande ämnen:

  1. C# OSM till KML Converter
  2. Steg för att konvertera OSM till KML
  3. Konvertera OSM till KML

C# OSM till KML Converter API - Gratis nedladdning

För att konvertera OpenStreetMap (OSM) fil till KML kommer vi att använda Aspose.GIS for .NET API. API:et tillåter export av OSM till KML utan att behöva programvara som ArcGIS, ArcMap, QGIS eller Google Earth. Det tillåter också rendering av kartor, skapa, läsa och konvertera geografiska data som är tillgängliga i de filformat som stöds.

API tillhandahåller klassen VectorLayer som representerar ett vektorlager. Den tillhandahåller Convert(sträng, FileDriver, sträng, FileDriver, ConversionOptions) som konverterar ett lager till ett annat format. Klassen SpatialReferenceSystem tillhandahåller en lista över olika rumsliga referenssystem som ska användas för kartan.

Vänligen antingen ladda ned DLL för API:t eller installera den med NuGet.

PM> Install-Package Aspose.GIS

Hur man konverterar OSM till KML i C#

Vi kan enkelt konvertera OpenStreetMap (OSM) fil till KML med Aspose.GIS för .NET genom att följa stegen nedan:

  1. Tilldela den rumsliga referensen Wgs84 till destinationslagret.
  2. Konvertera filformat från OSM till KML.

Följande avsnitt beskriver hur man omvandlar dessa steg till C# och konverterar ett OSM till KML-format.

Konvertera OSM till KML i C#

Vi kan exportera data från OSM till KML genom att följa stegen nedan:

  1. Skapa först en instans av klassen ConversionOptions.
  2. Efter det, ställ in DestinationSpatialReferenceSystem som Wgs84.
  3. Till sist, anropa VectorLayer.Convert()-metoden för att konvertera käll-OSM till KML.

Följande kodexempel visar hur man konverterar ett OSM till KML med C#.

// Detta kodexempel visar hur man konverterar OSM till KML.
// Ange konverteringsinställningar vid behov. Det är valfritt.
ConversionOptions options = null;

// Detta alternativ tilldelar Wgs84 till destinationslagret.
// Konvertering kan orsaka fel Om destinationslagret inte stöder Wgs84 spatial referens. Så måste kolla.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Konvertera filformat från OSM till KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man konverterar en OSM till KML i C#. Dessutom kan du utforska hur du arbetar med flera andra GIS-filformat och lära dig mer om API:t med hjälp av dokumentation. I händelse av oklarheter är du välkommen att kontakta oss på vårt gratis supportforum.

Se även