Динамическое изменение цвета полилинии

У меня есть веб-приложение, которое рисует ломаную линию для каждого пользователя, (отслеживает движение), и я хотел бы включить некоторые функции, которые позволяют веб-приложению пользователю «сосредоточиться» на определенном пользователе, изменив цвет полилинии. Придется сначала сменить все полилинии на красные, а затем сменить выделенную полилинию на синюю. Я думаю, что лучше всего избегать фокусировки на одной линии, а затем пытаться сосредоточиться на другой и сделать их обе синими. Я действительно не уверен, как это реализовать, но у меня есть функция, которая возвращает идентификатор пользователя при нажатии имени. Мне просто нужно перебрать каждый объект (полилинию каждого пользователя), чтобы сначала изменить их на красный, а затем изменить конкретный на синий. Вот код ниже. Если бы вы могли указать мне в правильном направлении, я был бы признателен. Спасибо. Это сокращенная версия моего кода, поэтому я надеюсь, что она содержит достаточно информации.

function User(id) {
this.id = id;

this.locations = [];

this.mark = 0;

this.getId = function() {
    return this.id;
};

this.addLocation = function(latitude, longitude) {
    this.locations[this.locations.length] = new google.maps.LatLng(latitude, longitude);        
};
var polyline;
this.drawPolyline = function(loc) {
        polyline = new google.maps.Polyline({
        map: map,
        path: loc,
        strokeColor: "#FF0000",
        strokeOpacity: 1.0,
        strokeWeight: 2
        });
    polyline.setMap(map);
};

this.removePolyline = function() {
    if (polyline != undefined) {
        polyline.setMap(null);
        }
    }
this.get_user_info = function(user_id) {

var datastr = 'id=' + user_id;
$.ajax({    
    type: "POST",
    url: 'user_api.php',  
    data: datastr,      
    dataType: 'json',                   
    success: function(data){
        var phone_id = data[0];
        var leftDiv = document.createElement("div"); //Create left div
        leftDiv.id = "left"; //Assign div id
        leftDiv.setAttribute("style", "float:left; width:66.5%; line-height: 26px; text-align:left; font-size:12pt; padding-left:8px; height:26px;"); //Set div attributes
        leftDiv.style.background =  divColor;
        //user_name = document.createTextNode(fullName + ' '); //Set user name          
        a = document.createElement('a');
        a.href ="javascript:setFocus('" + phone_id + "');";
        a.innerHTML = fullName + ' ';
        leftDiv.appendChild(a);
      }
    });
  }
}

function setFocus(phone_id) {
    alert(phone_id);
}
function Users() {
this.users = {};

this.createUser = function(id) {
    this.users[id] = new User(id);
    return this.users[id];
};

this.getUser = function(id) {
    return this.users[id];      
};

this.removeUser = function(id) {
    var user = this.getUser(id);
    delete this.users[id];
    return user;
};
}

var users = new Users();
10
задан Brad Larson 19 October 2012 в 18:32
поделиться