[英]How to sort a LatLng pointList in leaflet
我有一個pointList如下
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
});
但是我看到多條折線從一個點到另一個點。 看起來很奇怪。 參見下圖。
我想如果我可以對點進行排序,那么我只能得到一條線,而不是多條線。 您能告訴我如何對這些點進行排序嗎? 還是有一種簡單的方法來繪制折線而不是多條分歧線?
我附上jsfiddle ,為您提供我想做的事情。 從點列表中刪除第一個條目,並將其移到底部。 這條線然后看起來逐漸進展。 我的目標就是這樣。
折線是在您傳遞的點與傳遞它們的順序之間構造的。
從您發布的圖像中,我想您正在嘗試可視化某些物體(如汽車)的痕跡。 您應該具有某種時間戳或增量標識符,可以用來對這些點進行排序。
否則,您可以編寫一個簡單的算法,該算法從第一個點開始,計算到所有其他點的距離,然后選擇最接近的一個,然后將其添加為第二個點,依此類推。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.