'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('开始导航') }