var thisWidget; function initWidgetView(_thisWidget) { thisWidget = _thisWidget; //=================起点================== //输入坐标 $("#inputStartPoint").keypress(function (e) { if (e.keyCode != 13) return; var value = $(this).val(); value = value.replace(/ /g, ""); value = value.replace(/,/g, ","); debugger; if (testJWD(value)) { //表示输入的是经纬度 var jwd = value.split(","); thisWidget.inputStartPoint(jwd[0], jwd[1]); } else { //表示输入的是地名 thisWidget.queryStartPoint(value); } }) //图上选点 $("#drawStartPoint").click(function () { thisWidget.drawStartPoint(function (data) { $("#inputStartPoint").val(data); }); }) //=================终点================== //输入坐标 $("#inputEndPoint").keypress(function (e) { if (e.keyCode != 13) return; var value = $(this).val(); value = value.replace(/ /g, ""); value = value.replace(/,/g, ","); // 104.102382 , 30.666908 if (testJWD(value)) { //表示输入的是经纬度 var jwd = value.split(","); thisWidget.inputEndPoint(jwd[0], jwd[1]); } else { //表示输入的是地名 thisWidget.queryEndPoint(value); } }) //图上选点 $("#drawEndPoint").click(function () { thisWidget.drawEndPoint(function (data) { $("#inputEndPoint").val(data); }); }) //修改播放速度 $("#changeSpeed").change(function () { var val = $(this).val(); thisWidget.resetSpeed(Number(val)); }); } //坐标校验(判断是不是在中国国界内) function testJWD(jwdStr) { if (!jwdStr) return; var test = /^([7-9][0-9]|1[0-3][0-9])(.[0-9]{1,6})?[,,]([3-9]|[1-5][0-9])(.[0-9]{1,6})?$/; return test.test(jwdStr); } //填充搜索结果 生成下拉框 function setHtmlInMCXD(data, type) { if (!data || !type) return; var pois = data.list; var html = ""; if (pois.length < 1) { return; } for (var i = 0; i < pois.length; i++) { var item = pois[i]; var wgsLocation = item.x + "," + item.y; html += '
  • ' + item.name + '
  • '; } if (type == "start") { var searchval_start = document.getElementById("searchval_start"); $(searchval_start).show().html(html); } else { var searchval_end = document.getElementById("searchval_end"); $(searchval_end).show().html(html); } var mcxdClasss = document.getElementsByClassName("mcxdClass"); for (var i = 0; i < mcxdClasss.length; i++) { var ele = mcxdClasss[i]; //绑定下拉列表的点击事件 $(ele).off("click").on("click", function () { $(this).parent().hide(); var wgsLocation = $(this).attr("wgsLocation").split(","); var parentId = $(this).parent().attr("id"); if (parentId == "searchval_start") { //表示起点坐标 thisWidget.inputStartPoint(wgsLocation[0], wgsLocation[1]); var mcxd_input_text = document.getElementsByClassName("mcxd_start_text")[0]; $(mcxd_input_text).val($(this).text()); } else { //表示终点坐标 thisWidget.inputEndPoint(wgsLocation[0], wgsLocation[1]); var mcxd_input_text = document.getElementsByClassName("mcxd_end_text")[0]; $(mcxd_input_text).val($(this).text()); } }); } } //清除搜索到的路线内容 function clearRouteContent() { var routerContent = document.getElementById("routerContent"); if (routerContent) $(routerContent).html(""); } function showRouteBox(res) { var routeBox = document.getElementById("routeBox"); if (res == true) { routeBox.style.display = "block"; } else { routeBox.style.display = "none"; } } //widget里开始计算 function startCompute(){ faIndex = 1; } //展示路线信息 var faIndex = 1; function showRouteInfo(line) { if (!line || !line.attr) return; var path = line.attr; var content = ""; content += "全长" + (path.allDistance / 1000).toFixed(3) + "公里,"; content += "途经:"; var roadArr = path.road; for (var index = 0; index < roadArr.length; index++) { if (index == roadArr.length - 1) { if (roadArr[index]) content += roadArr[index] + "。"; } else { if (roadArr[index]) content += roadArr[index] + "、"; } } var id = line.id; var htmlStr = ''; var startDH_html = ''; var startCK_html = ''; var sj_html = '视角跟随'; htmlStr += '' + faIndex + '' htmlStr += '
    '; htmlStr += '方案' + faIndex + ''; htmlStr += startDH_html; htmlStr += startCK_html; htmlStr += sj_html; htmlStr += '
    '; htmlStr += ''; htmlStr += '

    ' + content + '

    '; htmlStr += ''; faIndex++; var routerContent = document.getElementById("routerContent"); $(routerContent).append(htmlStr); var showLines = document.getElementsByClassName("showLine"); var dhs = document.getElementsByClassName("startDH"); var sjgss = document.getElementsByClassName("sjgs"); $(showLines).off("click").on("click", function () { var lineId = $(this).attr("lineid"); thisWidget.highLightLine(lineId); }); $(dhs).off("click").on("click", function () { var lineId = $(this).attr("lineid"); if ($(this).val() == "开始导航") { thisWidget.startDH(lineId, isGS); thisWidget.resetSpeed(Number($("#changeSpeed").val() || 120)); $(this).next().click(); //高亮显示线 $(this).next().next().show(); var isGS = $(this).siblings(".span_sjgs").find(".sjgs").prop("checked"); //开始导航的时候 记录视角 thisWidget.getCameraView(); $(this).val("停止导航"); } else { $(this).val("开始导航"); thisWidget.reset(); thisWidget.setCameraView(); } }); $(sjgss).off("click").on("click", function () { var lineId = $(this).attr("lineid"); var checked = $(this).prop("checked"); if (checked) { thisWidget.startGS(lineId, $(this)); } else { thisWidget.removeTrack(); } }); } //重置按钮 function resetButton() { var dhs = document.getElementsByClassName("startDH"); var sjgss = document.getElementsByClassName("sjgs"); $(sjgss).prop("checked", false); $(dhs).val("开始导航"); }