【问题标题】:KML polygon coordinates sorting (clockwise, counterwise)KML 多边形坐标排序(顺时针、逆时针)
【发布时间】:2012-10-29 19:14:44
【问题描述】:

我在谷歌地球上可视化多边形时遇到了问题。我正在从上到下(在 java 中)读取 .xlsx 文件,并且我有一组坐标(x,y)。我的应用程序正在使用 JAK lib 生成 .kml 文件。之后,当我将此 .kml 文件导入谷歌地球时,我的多边形形状错误。示例如下:

问题是,在 kml 文件中,坐标按照它们出现在图像上的顺序排列。最后一个坐标默认连接到第一个坐标,这就是问题所在。 如何对这个形状将是矩形的坐标进行排序?当然这是最简单的例子。我有比矩形更复杂的多边形(在文件中)。

【问题讨论】:

    标签: coordinates kml polygon


    【解决方案1】:

    您将在多边形中使用的 KML 的 LinearRing 结构是一个环,因此多边形是按照您在环中指定的顺序线性绘制的。所以如果你想画一个矩形,它们需要被排序为 1, 2, 4 3。

    KML 中没有任何内容可以告诉它以不同的方式解释环。当您阅读 XSLX 时,您需要在您的 java 应用程序中对它们进行排序,或者让为您提供数据的人以正确的顺序向您发送点列表。我不确定你在做什么的领域是什么,但对我来说,以任何方式将它们发送给你没有任何意义,除了作为一个线性的点环,他命令你画线.

    【讨论】:

    • 当然你是对的。我知道顺序是错误的,我也知道这不是处理坐标排序的 KML 事情。我的问题是如何对(在 java 中)坐标进行排序,以便得到一个矩形多边形,而不是附加在图片上的多边形。
    【解决方案2】:

    如果你的多边形是凸的,你可以实现任何convex-hull algorithm。这适用于您的示例,但不适用于更复杂的多边形。

    【讨论】:

    • 是的。非常感谢。我这样做了。我什至发现了用 Java 编写的非常好的凸包算法。不幸的是,有些多边形不是凸的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多