我有一个像以下
的pointListvar 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)
];
我想使用这些点绘制polyLine。我使用以下代码绘制polyLine
L.Polyline(pointList, {
color: color,
weight: 10,
lineCap:"square",
lineJoin:"bevel",
opacity: 0.6,
smoothFactor: 1
});
但是我看到多个多线从一个点到另一个点发散。这看起来很奇怪。请参见下图。
我想如果我可以对点进行排序,那么我只能获得一行而不是多行。你能告诉我如何对这些点进行排序吗?或者有没有简单的方法来绘制折线而不是多个分叉线?
我附上jsfiddle给你一个我想做的事情。从点列表中删除第一个条目并将其移到底部。然后该线看起来逐渐进展。我的目标就是这样。
答案 0 :(得分:1)
Polyline是在您传递的点之间以及传递它们的顺序之间构建的。
从您发布的图片中我猜您正在尝试将某些物体的痕迹想象成汽车。您应该使用某种时间戳或增量标识符来订购点。
否则,您可以编写一个从第一个点开始的简单算法,并计算到所有其他点的距离并选择最接近的算法,然后将其添加为第二个点,依此类推。