var _initPanelTimeOut;

<!--===============================Traffic Search Start=========================-->
var aryMapPosnRoad, aryMapPropRoad, aryRoadStatus;  //定义路况搜索的结果
function blnOnRoadSrch(objForm) {
    var key = objForm.txtKey.value;
    key = window.encodeURI(objForm.txtKey.value);
    key = window.encodeURI(key);
    if (key && key != "") {
        var strUrl = "localsearch_getTraffic.action";
        var body = "key=" + key;
        var aryOptions = { method: 'post',postBody:body, encoding:"UTF-8", onComplete: voidOnRoadSrchEnd };
        var objAjax = new Ajax.Request(strUrl, aryOptions);
        loading("road", "正在查询");
    }else{
        alert("请输入道路名称或者道路编号");
    }
    return false;
}
function btnOnRoadLocation(roadname) {
    var key = window.encodeURI(roadname);
    key = window.encodeURI(key);
    var strUrl = "localsearch_getTraffic.action";
    var body = "key=" + key;
    var aryOptions = { method: 'post',postBody:body, encoding:"UTF-8", onComplete: voidOnRoadSrchEnd };
    var objAjax = new Ajax.Request(strUrl, aryOptions);
    loading("road", "正在查询");
}
var voidOnRoadSrchEnd = function(objRequest) {
    //var objXmlDoc = objRequest.responseText;
    var objXmlDoc = objRequest.responseXML;
    var info = objXmlDoc.getElementsByTagName("info");
    var message = info[0].getElementsByTagName("message")[0].firstChild.nodeValue;
    if (message == "success") {
        FormatRoad(info);
    } else {
        setResultText("road", message);
    }
}

function FormatRoad(info) {
    var rowLength = parseInt(info[0].getElementsByTagName("count")[0].firstChild.nodeValue);
    var rowResult = info[0].getElementsByTagName("collection")[0].getElementsByTagName("Data")[0].getElementsByTagName("Row");
    aryMapPosnRoad = [rowLength];
    aryMapPropRoad = [rowLength];
    aryRoadStatus = [rowLength];
    for (var i = 0; i < rowLength; i++) {

        aryMapPropRoad[i] = [0, 0, "", "", ""];    //[ID, FID, 名称, 长度, 宽度]
        aryRoadStatus[i] = ["", 0, "0"]; //状态, 持续时间, 过后路况

        var roadId = rowResult[i].selectSingleNode("ID").text;
        var name = rowResult[i].selectSingleNode("名称").text;
        var lnglatstr = rowResult[i].selectSingleNode("坐标").text;
        var status = rowResult[i].selectSingleNode("路况").text;
        var pointsAry = esoso.decodeLine(lnglatstr);
        aryMapPropRoad[i][0] = roadId;
        aryMapPosnRoad[i] = pointsAry;
        aryMapPropRoad[i][2] = name;
        aryRoadStatus[i][0] = status;
    }

    initRoadHTML();
    ItemLocateAll(0);
}
function initRoadHTML() {

    var intDataCount = aryMapPosnRoad.length;
    var htmlAry = new Array();

    var preRoadName;
    var crtRoadName;
    var roadCount = 1;
    var secCount = 1;

    for (var i = 0; i < intDataCount; i++) {
        crtRoadName = aryMapPropRoad[i][2];

        if (preRoadName == "") {
            preRoadName == crtRoadName;
        }

        if (preRoadName != crtRoadName) {
            if (htmlAry.length > 0) {
                htmlAry.push("<div class=\"split\"></div>");
            }
            htmlAry.push("<div class=\"rtiitem\" title=\"点击定位整条道路\"><div class=\"rtititle\">");
            htmlAry.push(roadCount);
            htmlAry.push(". <a href=\"javascript:void(0);\" onclick=\"ItemLocateAll(" + i + ");\" >");
            htmlAry.push(crtRoadName);
            htmlAry.push("</a></div></div>");

            preRoadName = crtRoadName;
            roadCount++;
            secCount = 1;
        }
        secCount++;
    }

    $(getResultBodyId("road")).innerHTML = htmlAry.join("");
    htmlAry = [];
}

function ItemLocateAll(idx) {
    var roadname = aryMapPropRoad[idx][2];
    var pointsAry = [];
    var linesAry = [];
    for (var i = 0; i < aryMapPropRoad.length; i++) {
        if (aryMapPropRoad[i][2] == roadname) {
            var arylines = aryMapPosnRoad[i];
            var points = [];
            for (var j = 0; j < arylines.length; j++) {
                pointsAry.push(arylines[j]);
                var latlng = new GLatLng(arylines[j][1], arylines[j][0]);
                points.push(latlng);
            }
            linesAry.push(points);
        }
    }

    var cl = esoso.getLevelAndCenter2(pointsAry);
    esoso.setCenter(cl.center, cl.level);

    FreshLines(linesAry);
}

var freshTimer;
var freshCount = 0;
var freshLine;
var freshPoints;

//单线段闪烁
function FreshLine(points) {
    freshPoints = points;

    if (freshTimer) {
        window.clearInterval(freshTimer);
    }
    freshCount = 0;

    freshTimer = window.setInterval(FreshLineFun, 500);
}

function FreshLineFun() {
    var points = freshPoints;
    if (freshCount > 0)
    //map.removeOverlay(freshLine);//原方法可能导致线遗留
        map.clearOverlays();

    if (freshCount % 2 == 0) {
        freshLine = new GPolyline(points, "#00EDFD", 5, 1, { clickable: false, geodesic: false });
        map.addOverlay(freshLine);
    }

    freshCount++;

    if (freshCount > 5) {
        window.clearInterval(freshTimer);
        map.removeOverlay(freshLine);
        freshCount = 0
    }
}

//多线段闪烁
function FreshLines(pointsAry) {
    freshPoints = pointsAry;

    if (freshTimer) {
        window.clearInterval(freshTimer);
    }
    freshCount = 0;

    freshTimer = window.setInterval(FreshLinesFun, 500);
}
function FreshLinesFun() {
    var pointsary = freshPoints;

    if (freshCount > 0) {
        map.clearOverlays();
    }

    for (var i = 0; i < pointsary.length; i++) {
        if (freshCount % 2 == 0) {
            freshLine = new GPolyline(pointsary[i], "#00EDFD", 5, 1, { clickable: false, geodesic: false });
            map.addOverlay(freshLine);
        }
    }

    freshCount++;

    if (freshCount > 5) {
        window.clearInterval(freshTimer);
        map.clearOverlays();
        freshCount = 0
    }
}

<!--===============================Traffic Search End=========================-->
