"use script"; //开发环境建议开启严格模式 //对应widget.js中MyWidget实例化后的对象 var thisWidget; function initWidgetView(_thisWidget) { thisWidget = _thisWidget; //=================起点================== //输入坐标 $("#inputStartPoint").change(function (e) { var value = $(this).val(); value = value.replace(/ /g, ""); value = value.replace(/,/g, ","); 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").change(function (e) { 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 (let i = 0; i < pois.length; i++) { let item = pois[i]; let wgsLocation = item.x + "," + item.y; html += '
  • ' + item.name + "
  • "; } if (type == "start") { let searchval_start = document.getElementById("searchval_start"); $(searchval_start).show().html(html); } else { let 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(); let wgsLocation = $(this).attr("wgsLocation").split(","); let parentId = $(this).parent().attr("id"); if (parentId == "searchval_start") { //表示起点坐标 thisWidget.inputStartPoint(wgsLocation[0], wgsLocation[1]); let mcxd_input_text = document.getElementsByClassName("mcxd_start_text")[0]; $(mcxd_input_text).val($(this).text()); } else { //表示终点坐标 thisWidget.inputEndPoint(wgsLocation[0], wgsLocation[1]); let 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(id, path) { if (!id || !path) { return; } 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 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"); $(this).val("停止导航"); } else { $(this).val("开始导航"); thisWidget.reset(); } }); $(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("开始导航"); }