From bafbd7130529e2a2c1e4cb6461eb5649c53df027 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Tue, 24 Nov 2020 15:58:25 +0800 Subject: [PATCH] 添加单设备AQI参数websocket --- src/main/webapp/page/scheme-helper.html | 233 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 177 insertions(+), 56 deletions(-) diff --git a/src/main/webapp/page/scheme-helper.html b/src/main/webapp/page/scheme-helper.html index 2ef3e40..4dfb0f0 100644 --- a/src/main/webapp/page/scheme-helper.html +++ b/src/main/webapp/page/scheme-helper.html @@ -3,9 +3,9 @@ <head> <meta charset="utf-8" /> <title>������������������</title> + <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=rER1sgBIcQxkfNSlm2wmBGZGgEERrooM"></script> + <script type="text/javascript" src="/js/jquery.min.js"></script> </head> -<link rel="stylesheet" type="text/css" href="/css/default.css"> -<link rel="stylesheet" href="/css/Lobibox.min.css"/> <style type="text/css"> body, html, @@ -13,31 +13,37 @@ #mapCanvas { width: 100%; height: 100%; - /* overflow: hidden; */ - /* margin: 0; */ - /* padding: 0; */ + overflow: hidden; + margin: 0; + padding: 0; z-index: 0; - /* font-size: 14px; */ - /* font-family: "������������"; */ + font-size: 14px; + font-family: "������������"; } .popup-box { position: absolute; z-index: 1; - font-size: 14px; background-color: white; top: 3%; left: 1%; padding: 14px 10px 0px; text-align: center; - width: 290px; - height: 130px; + width: 280px; + height: 150px; } .search-box { width: 220px; } - + .city-box { + width: 80px; + } + .set-city-box { + display: inline-block; + position: relative; + bottom: -2px; + } .anchorBL { display: none; } @@ -50,14 +56,7 @@ text-align: left; padding-left: 2px; } - input[type="button"] { - cursor: pointer; - } - input[type="radio"] { - cursor: pointer; - } </style> -<body> <div class="main-body"> <div class="popup-box"> <table> @@ -71,6 +70,15 @@ </tr> </table> <table> + <tr> + <td colspan="5" class="click-handle-title"> + ��������������� + <span id="city-name" style="width: 60px;height:20px;border-bottom:solid #1b1b1b 1px;display:inline-block"> + + </span> + <div class="set-city-box"><input class="city-box" type="input" /> <a id="setCityBtn" style=" text-decoration:underline; color:#00F;cursor:pointer;">������</a></div> + </td> + </tr> <tr> <td> <input id="clickHandle_0" type="radio" name="mapClickHandle" checked value="0" /> @@ -123,13 +131,21 @@ </div> <div id="mapCanvas"></div> </div> - <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=rER1sgBIcQxkfNSlm2wmBGZGgEERrooM"></script> - <script type="text/javascript" src="/js/jquery.min.js"></script> - <script type="text/javascript" src="/js/lobibox.min.js"></script> + +<body> <script> var baiduMap; var markerManager = { - data: {}, + data: { + mpoint:[], + star:[], + _regionName:null, + _boundary:[], + _boundaryState:false + }, + menuItems:{ + boundaryMenuItem:null + }, bind: {} }; markerManager.bindSelect = function (key, select) { @@ -146,6 +162,68 @@ console.log("int markerManager key:" + key + ",don't bind select"); } } + } + markerManager.setRegionName = function (regionName,successCallBack,errorCallBack){ + var thatData = this.data; + function getBoundary(regionName){ + var bdary = new BMap.Boundary(); + var map = baiduMap; + bdary.get(regionName, function(rs){ //������������������ + map.clearOverlays(); //��������������������� + var count = rs.boundaries.length; //������������������������������ + if (count === 0) { + // alert('������������������������������������'); + if(!!errorCallBack&&errorCallBack instanceof Function){ + errorCallBack(regionName); + } + return ; + } + //������������������ + $('#city-name').html(regionName); + $('.city-box').val(''); + map.setCurrentCity(regionName); // ��������������������������� ������������������������ + // var pointArray = []; + var polygonArray = []; + for (var i = 0; i < count; i++) { + var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2,fillOpacity:0.01,strokeStyle:"dashed",strokeColor: "#0000ff"}); //������������������������ + // map.addOverlay(ply); //��������������� + // pointArray = pointArray.concat(ply.getPath()); + polygonArray.push(ply); + } + // map.setViewport(pointArray); //������������ + //addlabel(); + + markerManager.reloadCustomOverlays(); + //������������������������������������������������ + if(markerManager.isBoundaryState()){ + switchBoundary.apply(markerManager.menuItems.boundaryMenuItem); + } + thatData._regionName = regionName; + markerManager.data._boundary = polygonArray; + if(!!successCallBack && successCallBack instanceof Function){ + successCallBack(regionName); + } + }); + } + getBoundary(regionName); + } + markerManager.openBoundary = function(){ + // console.log(this.data._boundary); + if(!!this.data._boundary&&this.data._boundary.length>0){ + for(var n =0 ;n< this.data._boundary.length;n++){ + baiduMap.addOverlay(this.data._boundary[n]); + } + this.data._boundaryState = true; + } + } + markerManager.closeBoundary = function(){ + for(var n =0 ;n< this.data._boundary.length;n++){ + baiduMap.removeOverlay(this.data._boundary[n]); + } + this.data._boundaryState = false; + } + markerManager.isBoundaryState = function() { + return this.data._boundaryState; } markerManager.addMarker = function (key, marker) { this.data[key] = !!this.data[key] ? this.data[key] : []; @@ -173,48 +251,23 @@ // 0,������������1������������������2���������������������3��������������� function clickHandle(args, key) { var handleValue = parseInt($("input[name='mapClickHandle']:checked").val()); - var handleName = ""; switch (handleValue) { case 0: - clickHandle.counter +=1; - handleName += "���������"; break; case 1: addMpoint(args.point); - handleName += "[������]������"; break; case 2: addStar(args.point); - handleName += "[���������]������"; break; case 3: - handleName += "������������"; - if(this instanceof BMap.Marker){ - removeOverlay(key,this); - clickHandle.counter -=1; - }else{ - clickHandle.counter +=1; - } + removeOverlay(key, this); break; } - if(clickHandle.counter>=4 ){ - var msg = "���������������:���"+handleName+"���,������������������������������������������" - Lobibox.notify('info', { - size: 'mini', - width: 500, - // delay: false, - icon: false, - msg: msg - }); - clickHandle.counter = 0; - } - } - clickHandle.counter = 0; var switchMenuItems = {}; switchClickHanld = function (value) { value = value.toString(); - clickHandle.counter = 0; $("input[name='mapClickHandle']").each(function () { var handleValue = $(this).val().toString(); if (handleValue === value) { @@ -232,7 +285,32 @@ } } } + markerManager.addOverlaysToBmap = function (overlays) { + if(!!overlays && overlays instanceof Object){ + for(var n in overlays){ + var overlay = overlays[n]; + baiduMap.addOverlay(overlay); + } + }else { + throw new Error("in addOverlaysToBmap overlays is not list"); + } + } + markerManager.reloadCustomOverlays = function() { + if(!!markerManager.data['mpoint']){ + markerManager.addOverlaysToBmap(markerManager.data['mpoint']); + } + if(!!markerManager.data['star']){ + markerManager.addOverlaysToBmap(markerManager.data['star']); + } + if(markerManager.isBoundaryState()){ + markerManager.openBoundary(); + } + } + function clearBaiduOverlays() { + baiduMap.clearOverlays();//������������������������ + markerManager.reloadCustomOverlays(); + } function clearOverlays() { for (var key in markerManager.data) { markerManager.data[key] = []; @@ -240,7 +318,6 @@ } baiduMap.clearOverlays(); } - function removeOverlay(key, marker) { baiduMap.removeOverlay(marker); markerManager.removeMarker(key, marker); @@ -288,7 +365,19 @@ // option.offset = new BMap.Size(0,-15); addMarker(point, option); } - + function switchBoundary() { + if(!markerManager.isBoundaryState()){ + markerManager.openBoundary(); + if(markerManager.isBoundaryState()){ + this.setText("������������"); + }else { + alert('���������������������'); + } + }else { + markerManager.closeBoundary(); + this.setText("������������"); + } + } function mapInit() { var map = new BMap.Map("mapCanvas"); this.baiduMap = map; @@ -348,6 +437,20 @@ } }, { + id: 'boundaryMenuItem', + text: '������������', + callback: function () { + var that = this; + switchBoundary.apply(this); + } + }, + { + text: '������������������', + callback: function (menuItem) { + clearBaiduOverlays(); + } + }, + { text: '������������', callback: function (menuItem) { var result = confirm('������! ������! ������! ������������������������������') @@ -371,6 +474,9 @@ width: 120, iconUrl: item.icon }); + if(item.id == "boundaryMenuItem"){ + markerManager.menuItems.boundaryMenuItem = menuItem; + } menu.addItem(menuItem); if (item.switch) { switchMenuItems[item.handleType] = menuItem; @@ -382,21 +488,36 @@ "click", clickHandle ); - map.addEventListener( - "dblclick", - function(){ - clickHandle.counter -=2; - } - ); return map; } (function ($) { var map = mapInit(); + var local = new BMap.LocalSearch(map, { + renderOptions:{map: map}, + onMarkersSet:function () { + markerManager.reloadCustomOverlays(); + } + }); + $('#setCityBtn').click(function () { + var cityName = $('.city-box').val(); + if(!!cityName){ + baiduMap.centerAndZoom(cityName); + markerManager.setRegionName(cityName,function () { + },function (value) { + alert('������������������'+value+'������������'); + }) + } + }); // ������������ $('.search-btn').on('click', function (args) { var searchValue = $('.search-box').val(); if (!!searchValue) { baiduMap.centerAndZoom(searchValue); + markerManager.setRegionName(searchValue, + function (searchValue) { + },function (searchValue) { + local.search(searchValue); + }); } }); markerManager.bindSelect("mpoint", "#mpointCount"); -- Gitblit v1.8.0