Привет всем снова.
Есть загружаемый на карту GPS (GPX) - трек. В нем много точек.
На карте его отрисовываю линией (да, мне так удобнее)
Народ попросил сделать возможность массового удаления точек.
Как я делаю сейчас:
Создаю "резиновый" прямоугольник (управляемый мышью), потом пробегаюсь по точкам линии, преобразуя их координаты в пиксельные и проверяю на попадание точки в этот прямоугольник. Если да, то удаляю.
На длинных треках, это понятно, каждое удаление точек занимает ощутимое время.
for(i=0;i<this.obj.getPoints().length;i++){
var toPx = map.converter.coordinatesToLocalPixels(this.obj.getPoints()[i])
if (( toPx.y < boxbottom ) && ( toPx.y > boxtop ) && ( toPx.x > boxleft ) && ( toPx.x < boxright ))
this.obj.removePoint(i)
}
// obj - линия трека
// this - это класс, рисующий прямоугольник и удаляющий точки
Как правильно? Ваш вариант?