2015-07-06 2 views
1

У меня есть PointList вроде следующегоКак сортировать LatLng 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) 
]; 

Я хочу, чтобы нарисовать ломаную линию, используя эти точки. Я использую следующий код для рисования polyLine

L.Polyline(pointList, { 
    color: color, 
    weight: 10, 
    lineCap:"square", 
    lineJoin:"bevel", 
    opacity: 0.6, 
    smoothFactor: 1 
    }); 

Но я вижу несколько полилиний, расходящихся от одной точки к другой. Это выглядит просто странно. См. Следующее изображение. polylines

Я думаю, если бы я мог сортировать точки, тогда я мог бы получить только одну строку вместо нескольких строк. Можете ли вы дать мне представление о том, как сортировать эти баллы? Или есть ли простой способ нарисовать полилинию вместо нескольких расходящихся линий?

У меня есть jsfiddle, чтобы дать вам представление о том, что я хочу делать. Удалите первую запись из списка и переместите ее вниз. Затем линия выглядит постепенно. Моя цель в точности такая.

+0

Можете ли вы создать скрипку с кодом? – BDD

+0

http://jsfiddle.net/pyztr17y/1/ Привет, пожалуйста, посмотрите это. Перенесите первую пару [lat, lon] на дно, тогда линия будет выглядеть именно так, как я хочу. Это означает, что очки сортируются. Как я могу составить список таких точек, отсортированных по коду? –

+0

Эй, у меня такая же проблема. Как вы это решили? – AngryLeo

ответ

0

Полилиния построена между передаваемыми вами точками и в том порядке, в котором вы их передаете.

Из изображения, которое вы опубликовали, я думаю, вы пытаетесь визуализировать след какого-либо объекта, например, автомобиля. У вас должна быть какая-то отметка времени или инкрементный идентификатор, который вы можете использовать для заказа очков.

В противном случае вы можете написать простой алгоритм, который начинается с первой точки и вычисляет расстояния до всех остальных и выбирает ближайший, и вы добавляете его как вторую точку и так далее.

Смежные вопросы