Java 从无序点列表绘制/生成多段线列表

Java 从无序点列表绘制/生成多段线列表,java,algorithm,geometry,Java,Algorithm,Geometry,我已经有了一份从特定区域街道上的许多汽车接收到的点坐标列表。是否有任何算法来绘制适当的多段线列表,这些多段线表示车辆从该列表中经过的街道 [编辑] 例如,下面的图片是从街道上的汽车接收到的一组点坐标。 我想要的预期结果是多段线列表有序点列表,如本例中的6条多段线 示例结果数据:[line1:[lat1,ln1,lat2,ln2,lat3,ln3,…],line2:[lat1,ln1,lat2,ln2,lat3,ln3,…] 这意味着,通过某种方式,我必须连接所有无序点,以形成多段线或绘制多段线

我已经有了一份从特定区域街道上的许多汽车接收到的点坐标列表。是否有任何算法来绘制适当的多段线列表,这些多段线表示车辆从该列表中经过的街道

[编辑]

例如,下面的图片是从街道上的汽车接收到的一组点坐标。

我想要的预期结果是多段线列表有序点列表,如本例中的6条多段线

示例结果数据:[line1:[lat1,ln1,lat2,ln2,lat3,ln3,…],line2:[lat1,ln1,lat2,ln2,lat3,ln3,…]

这意味着,通过某种方式,我必须连接所有无序点,以形成多段线或绘制多段线,这些多段线几乎代表它们相交的点

我尝试了k-means算法对点进行分组,然后将每个点连接在一起。我的想法是簇内的所有点都属于一条多段线。但问题是我不知道它应该有多少k簇,以及如何选择最有潜力的质心以使结果准确。因此,我尝试生成一个相当大的数字exg:300个随机质心。最终,有许多簇只有一个点,质心和成员点是相同的。另一方面,当质心的数量较少时,簇就不准确了,就像我预期的那样,一个簇中的点属于多段线


在我研究过的一些文章中,有一些关于arcGIS的点对线功能的讨论。我以前从来没有听说过这个,所以我真的不知道它是否可以与java一起使用

在最普遍的情况下解决这个问题是非常困难的

您可以做的最简单的事情是将每个点连接到其最近的邻居。如果这些点彼此足够接近,它应该可以正常工作

如果您想要更高级的东西,我会考虑将样条曲线拟合到数据,如中所示


尝试对数据进行聚类并不是我的第一个选择,但是如果你想要一个聚类算法而不需要事先知道聚类的数量,请查看

请缩小你的问题范围。显示一些示例数据和您想要得到的结果。你对解决这个问题有什么想法?谢谢你的回答,我已经修改了我的问题,让它更清楚。如果你想知道更多的信息,请让我知道。就像你说的,连接每个点到它最近的邻居是简单的,工作得很好。然而,当然,它不能保证在最一般的情况下的准确性。无论如何,我会看看你建议的文章,并继续找出更好的方法。非常感谢你的回答。