簡體   English   中英

如何在傳單中對LatLng pointList進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM