From 828915552e4f96b0cd898b87d4159852d620c63d Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Wed, 23 Dec 2020 15:01:37 +0800 Subject: [PATCH] update --- src/main/webapp/view/uavdroppoint.jsp | 240 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 188 insertions(+), 52 deletions(-) diff --git a/src/main/webapp/view/uavdroppoint.jsp b/src/main/webapp/view/uavdroppoint.jsp index dbc5e1d..e4180ec 100644 --- a/src/main/webapp/view/uavdroppoint.jsp +++ b/src/main/webapp/view/uavdroppoint.jsp @@ -73,16 +73,53 @@ border-collapse: collapse; font-size: 12px; } + + #details { + position: absolute; + z-index: 1; + width: 120px; + right: 100px; + bottom: 5px; + font-size: 18px; + background-color: white; + } + + #form { + position: absolute; + z-index: 1; + right: 400px; + bottom: 5px; + font-size: 18px; + background-color: white; + border: 1px solid black; + } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=dmzBXk6VTBG1SKUvqSSEgGBU8HcuoajQ"></script> <script type="text/javascript" src="../js/jquery.min.js"></script> </head> <body> -<div id="data"> + +<div id="data" style="display:none"> <%--������������������--%> - <table id="tab" style="border:1px solid black;width: 280px"></table> + <table id="tab" style="border:1px solid black;width: 280px"> + </table> </div> + +<form id="form"> + ������: + <input type="checkbox" value="one" checked> + 0-20m + <input type="checkbox" value="two" checked> + 21-40m + <input type="checkbox" value="three" checked> + 41-60m + <input type="checkbox" value="four" checked> + 61-80m + <input type="checkbox" value="five" checked> + 80m������ +</form> +<button id="details" onclick="show()">������������</button> <div class="main_body"> <div id="cpm">������������</div> <div id="mapCanvas"></div> <!-- ������������������--> @@ -95,8 +132,8 @@ </html> <script type="text/javascript"> /* - ��������������� - * */ + ��������������� + * */ var GPS = { PI: 3.14159265358979324, x_pi: 3.14159265358979324 * 3000.0 / 180.0, @@ -232,7 +269,8 @@ var sensorKey = params['sensorKey']; var unit = params['unit']; var description = params['description']; - var backgroundValue = 32; + var backgroundValue = ""; + $("#tab").append("<tr><td>������</td><td>������(��)</td><td>������(��)</td><td>������(m)</td><td>" + description + "(" + unit + ")</td></tr>");//��������������������������� var map = new BMap.Map("mapCanvas", {enableMapClick: false}); map.setMapStyle(mapStyle); @@ -241,67 +279,156 @@ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, type: BMAP_NAVIGATION_CONTROL_LARGE }); + var mapType = new BMap.MapTypeControl( + { + mapTypes: [BMAP_HYBRID_MAP, BMAP_NORMAL_MAP], + anchor: BMAP_ANCHOR_TOP_LEFT + } + ); map.addControl(navigation); + map.addControl(mapType); + map.setMapType(BMAP_HYBRID_MAP); map.addControl(new BMap.ScaleControl()); if (sensorInfo.length == 0) { showNoDroppoint(); } - var trackPoints = []; //��������������������������������������������������������������� + var trackPoints = []; + var trackPointsOne = []; + var trackPointsTwo = []; + var trackPointsThree = []; + var trackPointsFour = []; + var trackPointsFive = []; if (sensorInfo.length > 0) { $.each(sensorInfo, function (item, value) { - if (typeof (value.e76) == "undefined" /*|| typeof (value.e78) == "undefined"*/) { - showNoDroppoint(); - } else { - var lon = parseFloat(value.e76.substr(0, value.e76.length - 1)); - var lat = parseFloat(value.e77.substr(0, value.e77.length - 1)); - if (lon < 70 || lon > 150 || lat > 60 || lat <= 0) { - return true; - } - var lon1 = GPS.gcj_encrypt(lat, lon).lon; - var lat1 = GPS.gcj_encrypt(lat, lon).lat; - var lon2 = GPS.bd_encrypt(lat1, lon1).lon; - var lat2 = GPS.bd_encrypt(lat1, lon1).lat; - //var heigh = parseFloat(value.e78.substr(0, value.e78.length - 1)); - var heigh = typeof (value.e78) == "undefined" ? "" : parseFloat(value.e78.substr(0, value.e78.length - 1)); - var concentration = ""; - var time = ""; - $.each(value, function (key, data) { - if (key == sensorKey) { - concentration = data == "undefined" ? "" : parseFloat(data.substr(0, data.length - 1)); - } - if (key == "time") { - time = data.toString().split(" ")[1]; - } - }); - var point = new BMap.Point(lon2, lat2); - trackPoints.push(point); - $("#tab").append("<tr><td>" + time + "</td>" + "<td>" + lon2.toFixed(4) + "</td><td>" + lat2.toFixed(4) + "</td><td>" + heigh + "</td><td>" + concentration + "</td></tr>");//��������������������������� - - /* var myIcon = ""; - if (concentration > 23) { - myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20)); - trackPoints.push(point); - } else if (concentration == 23) { - myIcon = new BMap.Icon('/img/uav_green.png', new BMap.Size(20, 20)); - } else { - return true; - }*/ + if (typeof (value.e76) == "undefined" /*|| typeof (value.e78) == "undefined"*/) { + showNoDroppoint(); + } else { + var lon = parseFloat(value.e76.substr(0, value.e76.length - 1)); + var lat = parseFloat(value.e77.substr(0, value.e77.length - 1)); + if (lon < 70 || lon > 150 || lat > 60 || lat <= 0) { + return true; } + var lon1 = GPS.gcj_encrypt(lat, lon).lon; + var lat1 = GPS.gcj_encrypt(lat, lon).lat; + var lon2 = GPS.bd_encrypt(lat1, lon1).lon; + var lat2 = GPS.bd_encrypt(lat1, lon1).lat; + //var heigh = parseFloat(value.e78.substr(0, value.e78.length - 1)); + var heigh = typeof (value.e78) == "undefined" ? "" : parseFloat(value.e78.substr(0, value.e78.length - 1)); + var concentration = ""; + var time = ""; + $.each(value, function (key, data) { + if (key == sensorKey) { + concentration = data == "undefined" ? "" : parseFloat(data.substr(0, data.length - 1)); + } + if (key == "time") { + time = data.toString().split(" ")[1]; + } + }); + var point = new BMap.Point(lon2, lat2); + var hashMap = {"time": time, "point": point, "heigh": heigh, "concentration": concentration}; + if (heigh > 0 && heigh <= 20) { + trackPointsOne.push(hashMap); + } else if (heigh >= 21 && heigh <= 40) { + trackPointsTwo.push(hashMap); + } else if (heigh >= 41 && heigh <= 60) { + trackPointsThree.push(hashMap); + } else if (heigh >= 61 && heigh <= 80) { + trackPointsFour.push(hashMap); + } else if (heigh >= 81) { + trackPointsFive.push(hashMap); + } + trackPoints.push(hashMap); + $("#tab").append("<tr><td>" + time + "</td>" + "<td>" + lon2.toFixed(4) + "</td><td>" + lat2.toFixed(4) + "</td><td>" + heigh + "</td><td>" + concentration + "</td></tr>");//��������������������������� } - ) - if(trackPoints.length==0){ - showNoDroppoint(); + }); + } + if (trackPoints.length == 0) { + showNoDroppoint(); + } + + var points = getPoints(trackPoints); + map.centerAndZoom(points, 17);// ������������������������������������ + map.setViewport(points);// ������������������������������������������������������ + listen(trackPoints); + $("#form").change(function () { + map.clearOverlays(); + var result = []; + $('input:checkbox:checked').each(function () { + var val = $(this).val(); + if (val == "one") { + getResult(result, trackPointsOne); + } else if (val == "two") { + getResult(result, trackPointsTwo); + } else if (val == "three") { + getResult(result, trackPointsThree); + } else if (val == "four") { + getResult(result, trackPointsFour); + } else if (val == "five") { + getResult(result, trackPointsFive); + } + }); + var zoom = map.getZoom(); + if (zoom > 17) { + addMarkers(result); } - map.centerAndZoom(trackPoints, 17);// ������������������������������������ - map.setViewport(trackPoints);// ������������������������������������������������������ - var polygon = new BMap.Polygon(trackPoints, { + addPolygon(getPoints(result)); + listen(result); + }); + + function show() { + $("#data").toggle(); + } + + function getResult(result, arry) { + $.each(arry, function (index, value) { + result.push(value); + }); + } + + function listen(arry) { + map.addEventListener("zoomend", function () { + var points = getPoints(arry); + var zoom = map.getZoom(); + map.clearOverlays(); + if (zoom > 17) { + addMarkers(arry); + } + addPolygon(points); + }); + } + + function addMarkers(arry) { + $.each(arry, function (item, value) { + var myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(50, 50)); + var time = value["time"]; + var heigh = value["heigh"]; + var concentration = value["concentration"]; + var point = value["point"]; + var marker = new BMap.Marker(point, {icon: myIcon}); + map.addOverlay(marker); + var lon = marker.getPosition().lng; + var lat = marker.getPosition().lat; + var opts = { + width: 200, // ������������������ + height: 100 // ������������������ + } + var infoWindow = new BMap.InfoWindow("������: " + time + "</br>������: " + lon.toFixed(4) + "��</br>������: " + lat.toFixed(4) + "��</br>������: " + heigh + "m</br>" + description + ": " + concentration + unit, opts); // ������������������������ + if (heigh == "") { + infoWindow = new BMap.InfoWindow("������: " + time + "</br>������: " + lon.toFixed(4) + "��</br>������: " + lat.toFixed(4) + "</br>" + description + ": " + concentration + unit, opts); // ������������������������ + } + marker.addEventListener("click", function () { + map.openInfoWindow(infoWindow, point); //������������������ + }); + }); + } + + function addPolygon(points) { + var polygon = new BMap.Polygon(points, { strokeColor: "none", fillColor: "red", - strokeWeight: 2, strokeOpacity: 1 }); //��������������� map.addOverlay(polygon); //��������������� - map.setViewport(polygon.getPath()); //������������ } function showNoDroppoint() { @@ -312,4 +439,13 @@ document.getElementById("data").style.display = 'none'; }, 250); } -</script> + + function getPoints(arry) { + var points = []; + $.each(arry, function (item, value) { + var point = value["point"]; + points.push(point); + }); + return points; + } +</script> \ No newline at end of file -- Gitblit v1.8.0