Javascript 如何对传单中的LatLng点列表进行排序

Javascript 如何对传单中的LatLng点列表进行排序,javascript,sorting,leaflet,polyline,Javascript,Sorting,Leaflet,Polyline,我有一个如下的点列表 var pointList=[ new L.LatLng(lat1,lon1), new L.LatLng(lat2,lon2), new L.LatLng(lat3,lon3), new L.LatLng(lat4,lon4), new L.LatLng(lat5,lon5), new L.LatLng(lat6,lon6), new L.LatLng(lat7,lon7) ]; 我想用这些点画一条多段线。我正在使用以下代码绘制多段线 L.Polyline(pointL

我有一个如下的点列表

var pointList=[
new L.LatLng(lat1,lon1),
new L.LatLng(lat2,lon2),
new L.LatLng(lat3,lon3),
new L.LatLng(lat4,lon4),
new L.LatLng(lat5,lon5),
new L.LatLng(lat6,lon6),
new L.LatLng(lat7,lon7)
];
我想用这些点画一条多段线。我正在使用以下代码绘制多段线

L.Polyline(pointList, {
    color: color,
    weight: 10,
    lineCap:"square",
    lineJoin:"bevel",
    opacity: 0.6,
    smoothFactor: 1
    });
但我看到多条多段线从一个点发散到另一个点。那看起来很奇怪。请参见下图。

我想如果我能对点进行排序,那么我只能得到一行而不是多行。你能告诉我如何对这些点进行排序吗?或者有没有简单的方法来绘制多段线而不是多条发散线


我附上一个给你一个ide我想做什么。从点列表中删除第一个条目并将其移到底部。然后,生产线看起来在逐步推进。我的目标正是这样。

多段线是在你通过的点之间按照你通过它们的顺序构造的

从你发布的图片来看,我猜你是在试图想象一些物体的痕迹,比如汽车。您应该有某种时间戳或增量标识符,可以用来对点进行排序


否则,您可以编写一个简单的算法,从第一个点开始计算到所有其他点的距离,然后选择最接近的一个点,然后将其添加为第二个点,依此类推。

您能用代码创建一个小提琴吗?你好,请看这个。将第一个[lat,lon]对移动到底部,然后线条看起来正是我想要的。这意味着点已排序。我怎样才能把这些点按代码排序列出来?嘿,我也有同样的问题。你是怎么解决的?