var markerlist = [];
var markerRoute = [];
var rotaArray = [];
function updateMap() {
updateVehicles();
if (currentVehicle && currentVehicle.id) {
currentVehicle.showAndCenter();
updateCurrentVehicle(currentVehicle);
}
calculateBounds();
}
function showAndSelect(id) {
var oldVehicle = currentVehicle;
currentVehicle = retrieveVehicle(id);
currentVehicle.showAndCenter();
updateCurrentVehicle(currentVehicle);
checkRemoveCurrentVehicle(oldVehicle);
var row = document.getElementById('m:'+ id + ':current');
removeRoutePoints();
if(row){
if(row.checked == true){
showRouteVehicleOnMap(id, true);
calculateBoundsRoute();
}
}
calculateBoundsRoute();
}
function showOnMap(id, checked) {
if (checked) {
retrieveVehicle(id).show();
} else {
retrieveVehicle(id).hide();
}
calculateBoundsRoute();
}
function showRouteVehicleOnMap(id, checked) {
if (checked) {
var dataRoute = new Array();
var str = document.getElementById("r:"+ id + "");
dataRoute = str.value.split('|');
var j = 0;
rotaArray = new Array();
for ( var i = 0; i < dataRoute.length; i+=6) {
rotaArray[j] = new GLatLng(dataRoute[i], dataRoute[i+1]);
var lat = dataRoute[i];
var lng = dataRoute[i+1];
var point = dataRoute[i+2];
var veic = dataRoute[i+3];
var ord = dataRoute[i+4];
var dat = dataRoute[i+5];
var string = "Cliente: " + point + "
";
string += "Veiculo: " + veic + "
";
string += "Ordem: " + ord + "
";
string += "Data: " + dat + "
";
var markerIcon = createIcon2(ord);
var markerOptions = {icon:markerIcon, draggable:false, bouncy:false, zIndexProcess:function(marker,b) {return 1;}};
var marker = new GMarker(new GLatLng(lat,lng), markerOptions);
markerRoute.push(createMarkerRoute(marker, string));
j++;
}
var pontosRota = new Array();
var pontos = new Array();
ROUTES = new Array();
POLYLINES = new Array();
for ( var k = 0; k < markerRoute.length; k++) {
map.addOverlay(markerRoute[k]);
if( k > 0){
pontosRota.push(markerRoute[k-1].getPoint());
pontosRota.push(markerRoute[k].getPoint());
setRoutesListDirections(pontosRota);
}
pontos.push(markerRoute[k]);
pontosRota = [];
}
setTimeout(distancia, 2000);
} else {
removeRoutePoints();
}
}
function removeRoutePoints(){
if(markerRoute.length > 0){
for ( var i = 0; i < markerRoute.length; i++) {
map.removeOverlay(markerRoute[i]);
}
}
document.getElementById("distanciaTempo").innerHTML = "";
markerRoute = new Array();
clearCurrenteRoute2();
}
function showAllOnMap(checked) {
if (checked) {
showAllVehicles();
} else {
hideAllVehicles();
}
calculateBounds();
}
function createIcon2(type) {
var icon = new GIcon();
icon.image = "../image?id=" + type;
icon.iconSize = new GSize(32, 32);
icon.iconAnchor = new GPoint(16, 16);
icon.infoWindowAnchor = new GPoint(16, 16);
return icon;
}
function createMarkerRoute(marker, descricao) {
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(descricao);
});
return marker;
}
function createMarker2(marker, nome) {
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("Ponto " + nome + "");
});
return marker;
}
function showClientPointsOnMap(checked){
var list = new Array();
var string = document.getElementById('pointsToView');
list = string.value.split('|');
if(checked){
for ( var i = 2; i < list.length; i+=3) {
var nome = list[i-2];
var lat = list[i-1];
var lng = list[i];
markerlist.push(createMarker2(new GMarker(new GLatLng(lat, lng)), nome));
}
for ( var i = 0; i < markerlist.length; i++) {
map.addOverlay(markerlist[i]);
}
} else {
for ( var i = 0; i < markerlist.length; i++) {
map.removeOverlay(markerlist[i]);
}
}
}
function calculateBounds() {
if (vehicles.length > 0 && (!currentVehicle)) {
var mbr = new GLatLngBounds();
for(var i = 0; i < vehicles.length; i++) {
if (vehicles[i].isVisible()) {
mbr.extend(vehicles[i].center);
}
}
map.setCenter(mbr.getCenter(), map.getBoundsZoomLevel(mbr));
}
}
function checkRemoveCurrentVehicle(oldVehicle) {
if (currentVehicle && oldVehicle && (currentVehicle.id == oldVehicle.id)) {
currentVehicle = null;
removeRastro();
document.getElementById("currentVehicle").value = "";
document.getElementById("m:" + oldVehicle.id + ":current").checked = false;
}
}
function updateCurrentVehicle(currentVehicle) {
document.getElementById("currentVehicle").value = currentVehicle.id;
document.getElementById("m:" + currentVehicle.id + ":current").checked = true;
}