我在谷歌地球上可视化多边形时遇到问题。我正在从上到下(在 java 中)读取 .xlsx 文件,并且我有一组坐标(x,y)。我的应用程序正在使用 JAK lib 生成 .kml 文件。之后,当我将此 .kml 文件导入谷歌地球时,我的多边形形状错误。这是示例:
问题是在 kml 文件中,坐标按照它们出现在图像上的顺序排列。最后一个坐标默认连接到第一个坐标,这就是问题所在。如何对这个形状将是矩形的坐标进行排序?当然这是最简单的例子。我有比矩形更复杂的多边形(在文件中)。
我在谷歌地球上可视化多边形时遇到问题。我正在从上到下(在 java 中)读取 .xlsx 文件,并且我有一组坐标(x,y)。我的应用程序正在使用 JAK lib 生成 .kml 文件。之后,当我将此 .kml 文件导入谷歌地球时,我的多边形形状错误。这是示例:
问题是在 kml 文件中,坐标按照它们出现在图像上的顺序排列。最后一个坐标默认连接到第一个坐标,这就是问题所在。如何对这个形状将是矩形的坐标进行排序?当然这是最简单的例子。我有比矩形更复杂的多边形(在文件中)。
您在 Polygon 中使用的KML 的LinearRing结构是一个环,因此多边形是按照您在环中指定的顺序线性绘制的。所以如果你想画一个矩形,它们需要按 1、2、4 3 的顺序排列。
KML 中没有任何内容可以告诉它以不同的方式解释环。当您阅读 XSLX 时,您需要在您的 java 应用程序中对它们进行排序,或者让为您提供数据的人以正确的顺序向您发送点列表。我不确定你在做什么的领域是什么,但对我来说,以任何方式将它们发送给你没有任何意义,除了作为一个线性点环,他命令你画线.
如果你的多边形是凸的,你可以实现任何凸包算法。这适用于您的示例,但不适用于更复杂的多边形。