OpenStreetMap (OSM) — это проект с открытым исходным кодом. Он направлен на создание бесплатной редактируемой географической базы данных всего мира. Файл OpenStreetMap (.osm) представляет собой выдержку из базы данных OpenStreetMap, хранящуюся в формате XML. В некоторых случаях нам может потребоваться экспортировать данные карты из OSM для отображения в Google Планета Земля. Google Планета Земля использует файлы KML для отображения географических данных. В этой статье мы узнаем, как преобразовать OSM в KML на C#.
Эта статья должна охватывать следующие темы:
C# OSM to KML Converter API — скачать бесплатно
Для преобразования файла OpenStreetMap (OSM) в KML мы будем использовать API Aspose.GIS for .NET. API позволяет экспортировать OSM в KML без использования программного обеспечения, такого как ArcGIS, ArcMap, QGIS или Google Earth. Он также позволяет отображать карты, создавать, читать и преобразовывать географические данные, доступные в поддерживаемых форматах файлов.
API предоставляет класс VectorLayer, представляющий векторный слой. Он предоставляет Convert(string, FileDriver, string, FileDriver, ConversionOptions), который преобразует слой в другой формат. Класс SpatialReferenceSystem предоставляет список различных систем пространственной привязки, которые можно использовать для карты.
Пожалуйста, загрузите DLL API или установите его с помощью NuGet.
PM> Install-Package Aspose.GIS
Как преобразовать OSM в KML на C#
Мы можем легко преобразовать файл OpenStreetMap (OSM) в KML с помощью Aspose.GIS для .NET, выполнив следующие шаги:
- Назначьте пространственную привязку Wgs84 целевому слою.
- Преобразование формата файла из OSM в KML.
В следующем разделе описывается, как преобразовать эти шаги в C# и преобразовать OSM в формат KML.
Преобразование OSM в KML на C#
Мы можем экспортировать данные из OSM в KML, выполнив следующие шаги:
- Во-первых, создайте экземпляр класса ConversionOptions.
- После этого установите DestinationSpatialReferenceSystem как Wgs84.
- Наконец, вызовите метод VectorLayer.Convert(), чтобы преобразовать исходный OSM в KML.
В следующем примере кода показано, как преобразовать OSM в KML с помощью C#.
// В этом примере кода показано, как преобразовать OSM в KML.
// При необходимости укажите параметры конвертации. Это необязательно.
ConversionOptions options = null;
// Эта опция назначает Wgs84 целевому слою.
// Преобразование может вызвать ошибку, если целевой слой не поддерживает пространственную привязку Wgs84. Так что надо проверить.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Преобразование формата файла из OSM в KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.
Вывод
В этой статье мы узнали, как преобразовать OSM в KML на C#. Кроме того, вы можете узнать, как работать с несколькими другими форматами файлов ГИС, и узнать больше об API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.