如何在C#中将KML转换为WKT?

问题描述 投票:0回答:1

我可以使用nettopologysuite轻松地将WKT转换为KML,如下所示:

WKTReader wktR = new WKTReader();
GeoAPI.Geometries.IGeometry geom = wktR.Read(wktString);
KMLWriter writer = new KMLWriter();
string kml = writer.Write(geom);

但是我找不到有关如何进行相反处理的任何文档或想法。我认为我需要nettopologysuite IO KML中的KMLReader对象,但是只有一个writer。有没有办法做到我没有看到的?

c# .net kml wkt nettopologysuite
1个回答
0
投票

您是正确的-NetTopologySuite没有读取KML的任何功能。这可能是因为KML非常注重地图叠加功能,并且具有许多结构(例如照片和屏幕叠加),这些结构无法转换为更通用的几何结构。

尽管KML确实具有等效的常规几何图元(点,线,多边形),所以您只需要某种方式来加载它们,然后就可以实现变换。

最直接的路径是确定所需的KML元素,并实施两步转换。将它们加载到库中,例如SharpKml.Core(展平并提取感兴趣的结构),然后实施构建器将其转换为NTS等效项。有关如何从KML中提取感兴趣的元素的文档,请访问:https://github.com/samcragg/sharpkml/blob/master/docs/ExtractingElements.md

© www.soinside.com 2019 - 2024. All rights reserved.