From 21bc39e477ebf9421378aed76062e2be1f1e7f9e Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 19 Jun 2020 10:26:30 +0800
Subject: [PATCH] 无人机落点,污染源通道,溯源应用
---
src/main/webapp/view/uavtracing.jsp | 185 ++++++++++++
src/main/java/com/moral/service/HistoryService.java | 2
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 105 ++++--
src/main/java/com/moral/mapper/HistoryMapper.java | 2
src/main/webapp/img/uav_green.png | 0
src/main/resources/mapper/HistoryMapper.xml | 20 +
src/main/webapp/img/uav_red.png | 0
src/main/webapp/view/uavchannel.jsp | 185 ++++++++++++
src/main/webapp/view/uavdroppoint.jsp | 185 ++++++++++++
src/main/java/com/moral/controller/ScreenController.java | 158 ++++++++++
10 files changed, 795 insertions(+), 47 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 23c06ea..d8ebe59 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -929,12 +929,12 @@
}
}
- for (int i = 0; i <resultList.size() ; i++) {
+ for (int i = 0; i < resultList.size(); i++) {
if (resultList.get(i) == null) {
Map<String, Object> hashMap = new HashMap<>();
- if(type.equals("day")){
+ if (type.equals("day")) {
hashMap.put("time", i);
- }else {
+ } else {
hashMap.put("time", i + 1);
}
hashMap.put(s, "");
@@ -961,15 +961,15 @@
ArrayList<String> values = new ArrayList<>();
values.add(map.remove(s).toString());
values.add("");
- map.put("values",values);
+ map.put("values", values);
}
}
Iterator<Map<String, Object>> it = resultList.iterator();
- while(it.hasNext()){
+ while (it.hasNext()) {
Map<String, Object> next = it.next();
- ArrayList<String> values = (ArrayList<String>)next.get("values");
- if(values.get(0).equals("")&&values.get(1).equals("")){
+ ArrayList<String> values = (ArrayList<String>) next.get("values");
+ if (values.get(0).equals("") && values.get(1).equals("")) {
it.remove();
}
}
@@ -1635,4 +1635,148 @@
return model;
}
}
+
+ @GetMapping("/uavDroppoint")
+ @ApiOperation(value = "���������������������", notes = "���������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392068���", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "������������(���������2019-07-17-17)", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "������������(���������2019-07-17-18)", required = true, paramType = "query", dataType = "String")
+ })
+ public ModelAndView uavDroppoint(ModelAndView model, HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ String st = parameters.get("startTime").toString();
+ String startYearAndDay = st.substring(0, st.lastIndexOf("-"));
+ String startHour = st.substring(st.lastIndexOf("-") + 1);
+ String startTime = startYearAndDay + " " + startHour + ":00:00";
+ String et = parameters.get("endTime").toString();
+ String endHour = et.substring(et.lastIndexOf("-") + 1);
+ int endHourValue = Integer.valueOf(endHour);
+ int startHourValue = Integer.valueOf(startHour);
+ if (endHourValue <= startHourValue) {
+ endHourValue = startHourValue + 1;
+ }
+ String endTime = startYearAndDay + " " + endHourValue + ":00:00";
+ parameters.put("startTime", startTime);
+ parameters.put("endTime", endTime);
+ String mac = parameters.get("mac").toString();
+ if (mac != null && mac.length() != 0) {
+ List<Map<String, Object>> sensorData = historyService.getUavSensorData(parameters);
+ Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+ JSONObject params = new JSONObject();
+ params.put("sensorInfo", sensorData);
+ params.put("sensorsMap", sensorsMap);
+ params.put("sensorKey",parameters.get("sensorKey"));
+ params.put("unit",parameters.get("unit"));
+ params.put("description",parameters.get("description"));
+ String paramsJson = params.toJSONString();
+ model.addObject("uavDroppointParams", paramsJson);
+ model.setViewName("uavdroppoint");
+ return model;
+ } else {
+ StringBuilder msg = new StringBuilder();
+ msg.append(" param[0] mac:");
+ msg.append(mac);
+ log.warn(msg);
+ model.setViewName("403");
+ return model;
+ }
+ }
+
+ @GetMapping("/uavChannel")
+ @ApiOperation(value = "������������������������������", notes = "������������������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392068���", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "������������(���������2019-07-17-17)", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "������������(���������2019-07-17-18)", required = true, paramType = "query", dataType = "String")
+ })
+ public ModelAndView uavChannel(ModelAndView model, HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ String st = parameters.get("startTime").toString();
+ String startYearAndDay = st.substring(0, st.lastIndexOf("-"));
+ String startHour = st.substring(st.lastIndexOf("-") + 1);
+ String startTime = startYearAndDay + " " + startHour + ":00:00";
+ String et = parameters.get("endTime").toString();
+ String endHour = et.substring(et.lastIndexOf("-") + 1);
+ int endHourValue = Integer.valueOf(endHour);
+ int startHourValue = Integer.valueOf(startHour);
+ if (endHourValue <= startHourValue) {
+ endHourValue = startHourValue + 1;
+ }
+ String endTime = startYearAndDay + " " + endHourValue + ":00:00";
+ parameters.put("startTime", startTime);
+ parameters.put("endTime", endTime);
+ String mac = parameters.get("mac").toString();
+ if (mac != null && mac.length() != 0) {
+ List<Map<String, Object>> sensorData = historyService.getUavSensorData(parameters);
+ Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+ JSONObject params = new JSONObject();
+ params.put("sensorInfo", sensorData);
+ params.put("sensorsMap", sensorsMap);
+ params.put("sensorKey",parameters.get("sensorKey"));
+ params.put("unit",parameters.get("unit"));
+ params.put("description",parameters.get("description"));
+ String paramsJson = params.toJSONString();
+ model.addObject("uavDroppointParams", paramsJson);
+ model.setViewName("uavchannel");
+ return model;
+ } else {
+ StringBuilder msg = new StringBuilder();
+ msg.append(" param[0] mac:");
+ msg.append(mac);
+ log.warn(msg);
+ model.setViewName("403");
+ return model;
+ }
+ }
+
+ @GetMapping("/uavTracing")
+ @ApiOperation(value = "���������������������", notes = "���������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392068���", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "������������(���������2019-07-17-17)", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "������������(���������2019-07-17-18)", required = true, paramType = "query", dataType = "String")
+ })
+ public ModelAndView uavTracing(ModelAndView model, HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ String st = parameters.get("startTime").toString();
+ String startYearAndDay = st.substring(0, st.lastIndexOf("-"));
+ String startHour = st.substring(st.lastIndexOf("-") + 1);
+ String startTime = startYearAndDay + " " + startHour + ":00:00";
+ String et = parameters.get("endTime").toString();
+ String endHour = et.substring(et.lastIndexOf("-") + 1);
+ int endHourValue = Integer.valueOf(endHour);
+ int startHourValue = Integer.valueOf(startHour);
+ if (endHourValue <= startHourValue) {
+ endHourValue = startHourValue + 1;
+ }
+ String endTime = startYearAndDay + " " + endHourValue + ":00:00";
+ parameters.put("startTime", startTime);
+ parameters.put("endTime", endTime);
+ String mac = parameters.get("mac").toString();
+ if (mac != null && mac.length() != 0) {
+ List<Map<String, Object>> sensorData = historyService.getUavSensorData(parameters);
+ Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+ JSONObject params = new JSONObject();
+ params.put("sensorInfo", sensorData);
+ params.put("sensorsMap", sensorsMap);
+ params.put("sensorKey",parameters.get("sensorKey"));
+ params.put("unit",parameters.get("unit"));
+ params.put("description",parameters.get("description"));
+ String paramsJson = params.toJSONString();
+ model.addObject("uavDroppointParams", paramsJson);
+ model.setViewName("uavtracing");
+ return model;
+ } else {
+ StringBuilder msg = new StringBuilder();
+ msg.append(" param[0] mac:");
+ msg.append(mac);
+ log.warn(msg);
+ model.setViewName("403");
+ return model;
+ }
+ }
}
diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 404b31f..fdfc45b 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -30,6 +30,8 @@
List<Map<String, Object>> getCarSensorData(Map<String, Object> parameters);
+ List<Map<String, Object>> getUavSensorData(Map<String, Object> parameters);
+
List<Map<String, Object>> listGetSensorData(Map<String, Object> parameters);
//���������������������������
diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java
index ea12763..2ab5e0e 100644
--- a/src/main/java/com/moral/service/HistoryService.java
+++ b/src/main/java/com/moral/service/HistoryService.java
@@ -31,6 +31,8 @@
List<List<Map<String, Object>>> getCarSensorData(Map<String, Object> parameters) throws Exception;
+ List<Map<String, Object>> getUavSensorData(Map<String, Object> parameters);
+
//������������������������������
List<Map<String, Object>> getO3AVG(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index 53fa49d..39a6e46 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -34,8 +34,8 @@
import com.moral.service.HistoryService;
import com.moral.service.ProfessionService;
import com.moral.util.AQICalculation;
-
import com.moral.util.DatesUtil;
+
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -543,10 +543,34 @@
}
@Override
- public List<Map<String,Object>> getO3AVG(Map<String, Object> parameters) {
- String mac= (String) parameters.get("mac");
- String stime= (String) parameters.get("time");
- SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
+ public List<Map<String, Object>> getUavSensorData(Map<String, Object> parameters) {
+ List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters);
+ List<String> sensorKeys = new ArrayList<>();
+ for (Sensor sensor : sensors) {
+ sensorKeys.add(sensor.getSensorKey());
+ }
+ parameters.put("sensorKeys", sensorKeys);
+ List<Map<String, Object>> uavSensorData = historyMapper.getUavSensorData(parameters);
+ for (Map<String, Object> dataMap : uavSensorData) {
+ for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
+ for (Sensor sensor : sensors) {
+ if (sensor.getSensorKey().equals(entry.getKey())) {
+ dataMap.put(entry.getKey(), new BigDecimal(entry.getValue().toString().replace("\"", "")).stripTrailingZeros().toPlainString() + sensor.getUnit());
+ }
+ }
+ }
+ }
+ Map<String, Object> map = sensorMapper.getSensorBySensorKey(parameters.get("sensorKey").toString());
+ parameters.put("unit",map.get("unit"));
+ parameters.put("description",map.get("description"));
+ return uavSensorData;
+ }
+
+ @Override
+ public List<Map<String, Object>> getO3AVG(Map<String, Object> parameters) {
+ String mac = (String) parameters.get("mac");
+ String stime = (String) parameters.get("time");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Date time = null;
try {
time = format.parse(stime);
@@ -554,7 +578,7 @@
e.printStackTrace();
}
List<String> stringListDate = DatesUtil.getAllTheDateOftheMonth(time);
- List<Map<String,Object>> maxList=new ArrayList<Map<String,Object>>();
+ List<Map<String, Object>> maxList = new ArrayList<Map<String, Object>>();
for (String date : stringListDate) {
Map<String, Object> parm = new HashMap<String, Object>();
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@@ -566,53 +590,54 @@
parm.put("nextDate", nextDate);
parm.put("mac", mac);
List<Map<String, Object>> listMap = historyMapper.getO3AVG(parm);
- List list=new ArrayList();
- DatesUtil.getList(listMap,list);
- List list1=new ArrayList();
- String maxO3="";
- for (int i = 0; i <list.size() ; i++) {
- List elist=new ArrayList();
- Double sum=0.0;
- Double avg=0.0;
- for (Object o : (List)list.get(i)) {
- Iterator<Map.Entry> iterator= ((Map)o).entrySet().iterator();
- while(iterator.hasNext()) {
+ List list = new ArrayList();
+ DatesUtil.getList(listMap, list);
+ List list1 = new ArrayList();
+ String maxO3 = "";
+ for (int i = 0; i < list.size(); i++) {
+ List elist = new ArrayList();
+ Double sum = 0.0;
+ Double avg = 0.0;
+ for (Object o : (List) list.get(i)) {
+ Iterator<Map.Entry> iterator = ((Map) o).entrySet().iterator();
+ while (iterator.hasNext()) {
Map.Entry entry = iterator.next();
- if (entry.getKey().equals("e15")){
+ if (entry.getKey().equals("e15")) {
elist.add(entry.getValue());
}
}
}
- for (int j = 0; j <elist.size(); j++) {
- sum+=Double.parseDouble((String) elist.get(j));
- if (listMap.size()<=8 && listMap.size()>0){
- avg=sum/listMap.size();
- }else {
- avg=sum/8;
+ for (int j = 0; j < elist.size(); j++) {
+ sum += Double.parseDouble((String) elist.get(j));
+ if (listMap.size() <= 8 && listMap.size() > 0) {
+ avg = sum / listMap.size();
+ } else {
+ avg = sum / 8;
}
}
- if (avg==0.0){
+ if (avg == 0.0) {
list1.add("");
- }else {
+ } else {
BigDecimal b = new BigDecimal(avg);
- double avg1 = b.setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();
+ double avg1 = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
list1.add(avg1);
}
}
- String timef=date+" 00:00:00";
- String timea=date+" 23:59:59";
- int num=historyMapper.getNum(timef,timea);
- if (num==0) {
+ String timef = date + " 00:00:00";
+ String timea = date + " 23:59:59";
+ int num = historyMapper.getNum(timef, timea);
+ if (num == 0) {
maxO3 = "";
- }else {
- if (list1.size()!=0){
- maxO3= ""+ Collections.max(list1);
- }else {
- maxO3="";
- }}
- Map<String,Object> avgMap=new HashMap<String,Object>();
- avgMap.put("time",date);
- avgMap.put("e15",maxO3);
+ } else {
+ if (list1.size() != 0) {
+ maxO3 = "" + Collections.max(list1);
+ } else {
+ maxO3 = "";
+ }
+ }
+ Map<String, Object> avgMap = new HashMap<String, Object>();
+ avgMap.put("time", date);
+ avgMap.put("e15", maxO3);
maxList.add(avgMap);
}
return maxList;
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 0ab705d..05c8a4c 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -236,6 +236,26 @@
h.time
</select>
+ <!-- ��������������� -->
+ <select id="getUavSensorData" resultType="java.util.LinkedHashMap">
+ SELECT
+ DATE_FORMAT(h.time,'%Y-%m-%d %H:%i:%s') time,
+ <foreach collection="sensorKeys" item="sensorKey" separator=",">
+ h.value->'$.${sensorKey}' as '${sensorKey}'
+ </foreach>
+ FROM
+ history_special as h
+ <where>
+ <if test="mac!=null">
+ and h.mac = #{mac}
+ </if>
+ and h.time >= #{startTime}
+ and h.time <![CDATA[<]]> #{endTime}
+ </where>
+ ORDER BY
+ h.time
+ </select>
+
<select id="listGetSensorData" resultType="java.util.LinkedHashMap">
SELECT
DATE_FORMAT(h.time,'%Y-%m-%d %H:%i:%s') time,
diff --git a/src/main/webapp/img/uav_green.png b/src/main/webapp/img/uav_green.png
new file mode 100644
index 0000000..1deaba4
--- /dev/null
+++ b/src/main/webapp/img/uav_green.png
Binary files differ
diff --git a/src/main/webapp/img/uav_red.png b/src/main/webapp/img/uav_red.png
new file mode 100644
index 0000000..8f4a2fb
--- /dev/null
+++ b/src/main/webapp/img/uav_red.png
Binary files differ
diff --git a/src/main/webapp/view/uavchannel.jsp b/src/main/webapp/view/uavchannel.jsp
new file mode 100644
index 0000000..fe7a19f
--- /dev/null
+++ b/src/main/webapp/view/uavchannel.jsp
@@ -0,0 +1,185 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
+ <style type="text/css">
+ body,
+ html,
+ #mapCanvas {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ margin: 0;
+ z-index: 0;
+ font-size: 14px;
+ font-family: "������������";
+ }
+
+ .main_body {
+ border: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+
+ #cpm {
+ width: 300px;
+ height: 100px;
+ position: absolute;
+ background-color: #ffffff;
+ display: none;
+ left: 50%;
+ top: 50%;
+ margin-left: -150px;
+ margin-top: -50px;
+ z-index: 11;
+ color: #000000;
+ border: 2px solid #FF7F50;
+ font-size: 28px;
+ line-height: 100px;
+ text-align: center;
+ }
+
+ #data {
+ overflow: scroll;
+ width: 300px;
+ height: 400px;
+ top: 20px;
+ right: 5px;
+ position: absolute;
+ z-index: 1;
+ background-color: gainsboro;
+ opacity: 0.8;
+ border: 2px solid red;
+ }
+
+ .trr {
+ border-collapse: collapse;
+ }
+
+ .trr th, td {
+ border: 1px solid black;
+ text-align: center;
+ }
+
+ table {
+ border-collapse: collapse;
+ font-size: 12px;
+ }
+ </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">
+ <%--������������������--%>
+ <table id="tab" style="border:1px solid black;width: 280px">
+ </table>
+</div>
+<div class="main_body">
+ <div id="cpm">������������</div>
+ <div id="mapCanvas"></div> <!-- ������������������-->
+ <!-- ���sensorInfo,regionCode,regionName,monitorPoint,device-->
+ <div id="uavDroppointParams" style="display: none;">
+ ${requestScope.uavDroppointParams}
+ </div>
+</div>
+</body>
+</html>
+<script type="text/javascript">
+ var mapStyle = {
+ features: ["road", "building", "water", "land"], // ������������������poi
+ style: "normal" // ������������������������������
+ };
+ var params = $.parseJSON($("#uavDroppointParams").html());
+ var sensorInfo = params["sensorInfo"];
+ var sensorKey = params['sensorKey'];
+ var unit = params['unit'];
+ var description=params['description'];
+ var backgroundValue=32;
+ $("#tab").append("<tr><td>������(��)</td><td>������(��)</td><td>������(m)</td><td>"+description+"(" + unit + ")</td></tr>");//���������������������������
+ var map = new BMap.Map("mapCanvas", {enableMapClick: false});
+ map.setMapStyle(mapStyle);
+ map.enableScrollWheelZoom(true); // ������������������������
+ var navigation = new BMap.NavigationControl({
+ anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
+ type: BMAP_NAVIGATION_CONTROL_LARGE
+ });
+ map.addControl(navigation);
+ map.addControl(new BMap.ScaleControl());
+ if (sensorInfo.length == 0) {
+ showNoDroppoint();
+ }
+ var trackPoints = []; //���������������������������������������������������������������
+ 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)).toFixed(4);
+ var lat = parseFloat(value.e77.substr(0, value.e77.length - 1)).toFixed(4);
+ if (lon <= 0 || lat <= 0 || lon > 180 || lat > 180) {
+ return true;
+ }
+ var heigh = parseFloat(value.e78.substr(0, value.e78.length - 1));
+ var concentration = "";
+ $.each(value, function (key, data) {
+ if (key == sensorKey) {
+ concentration = data == "undefined" ? "" : parseFloat(data.substr(0, data.length - 1));
+ }
+ });
+ var point = new BMap.Point(lon, lat);
+ var myIcon = "";
+ if (concentration > backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ } else if (concentration == backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_green.png', new BMap.Size(20, 20));
+ } else {
+ return true;
+ }
+ //var myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ var marker = new BMap.Marker(point, {icon: myIcon});
+ map.addOverlay(marker);
+ trackPoints.push(point);
+ $("#tab").append("<tr><td>" + lon + "</td><td>" + lat + "</td><td>" + heigh + "</td><td>" + concentration + "</td></tr>");//���������������������������
+ var opts = {
+ width: 80, // ������������������
+ height: 80, // ������������������
+ }
+ var msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78 + "<br>" +description+": "+concentration+unit;
+ if (concentration == "") {
+ msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78;
+ }
+ var infoWindow = new BMap.InfoWindow(msg, opts); // ������������������������
+ marker.addEventListener("click", function () {
+ map.openInfoWindow(infoWindow, point); //������������������
+ });
+ }
+ }
+ )
+ map.centerAndZoom(trackPoints, 17);// ������������������������������������
+ map.setViewport(trackPoints);// ������������������������������������������������������
+ }
+
+ function showNoDroppoint() {
+ var point = new BMap.Point(120.987287, 31.391562);
+ map.centerAndZoom(point, 17);
+ setTimeout(function () {
+ document.getElementById("cpm").style.display = 'block';
+ document.getElementById("data").style.display = 'none';
+ }, 250);
+ }
+</script>
diff --git a/src/main/webapp/view/uavdroppoint.jsp b/src/main/webapp/view/uavdroppoint.jsp
new file mode 100644
index 0000000..fe7a19f
--- /dev/null
+++ b/src/main/webapp/view/uavdroppoint.jsp
@@ -0,0 +1,185 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
+ <style type="text/css">
+ body,
+ html,
+ #mapCanvas {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ margin: 0;
+ z-index: 0;
+ font-size: 14px;
+ font-family: "������������";
+ }
+
+ .main_body {
+ border: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+
+ #cpm {
+ width: 300px;
+ height: 100px;
+ position: absolute;
+ background-color: #ffffff;
+ display: none;
+ left: 50%;
+ top: 50%;
+ margin-left: -150px;
+ margin-top: -50px;
+ z-index: 11;
+ color: #000000;
+ border: 2px solid #FF7F50;
+ font-size: 28px;
+ line-height: 100px;
+ text-align: center;
+ }
+
+ #data {
+ overflow: scroll;
+ width: 300px;
+ height: 400px;
+ top: 20px;
+ right: 5px;
+ position: absolute;
+ z-index: 1;
+ background-color: gainsboro;
+ opacity: 0.8;
+ border: 2px solid red;
+ }
+
+ .trr {
+ border-collapse: collapse;
+ }
+
+ .trr th, td {
+ border: 1px solid black;
+ text-align: center;
+ }
+
+ table {
+ border-collapse: collapse;
+ font-size: 12px;
+ }
+ </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">
+ <%--������������������--%>
+ <table id="tab" style="border:1px solid black;width: 280px">
+ </table>
+</div>
+<div class="main_body">
+ <div id="cpm">������������</div>
+ <div id="mapCanvas"></div> <!-- ������������������-->
+ <!-- ���sensorInfo,regionCode,regionName,monitorPoint,device-->
+ <div id="uavDroppointParams" style="display: none;">
+ ${requestScope.uavDroppointParams}
+ </div>
+</div>
+</body>
+</html>
+<script type="text/javascript">
+ var mapStyle = {
+ features: ["road", "building", "water", "land"], // ������������������poi
+ style: "normal" // ������������������������������
+ };
+ var params = $.parseJSON($("#uavDroppointParams").html());
+ var sensorInfo = params["sensorInfo"];
+ var sensorKey = params['sensorKey'];
+ var unit = params['unit'];
+ var description=params['description'];
+ var backgroundValue=32;
+ $("#tab").append("<tr><td>������(��)</td><td>������(��)</td><td>������(m)</td><td>"+description+"(" + unit + ")</td></tr>");//���������������������������
+ var map = new BMap.Map("mapCanvas", {enableMapClick: false});
+ map.setMapStyle(mapStyle);
+ map.enableScrollWheelZoom(true); // ������������������������
+ var navigation = new BMap.NavigationControl({
+ anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
+ type: BMAP_NAVIGATION_CONTROL_LARGE
+ });
+ map.addControl(navigation);
+ map.addControl(new BMap.ScaleControl());
+ if (sensorInfo.length == 0) {
+ showNoDroppoint();
+ }
+ var trackPoints = []; //���������������������������������������������������������������
+ 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)).toFixed(4);
+ var lat = parseFloat(value.e77.substr(0, value.e77.length - 1)).toFixed(4);
+ if (lon <= 0 || lat <= 0 || lon > 180 || lat > 180) {
+ return true;
+ }
+ var heigh = parseFloat(value.e78.substr(0, value.e78.length - 1));
+ var concentration = "";
+ $.each(value, function (key, data) {
+ if (key == sensorKey) {
+ concentration = data == "undefined" ? "" : parseFloat(data.substr(0, data.length - 1));
+ }
+ });
+ var point = new BMap.Point(lon, lat);
+ var myIcon = "";
+ if (concentration > backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ } else if (concentration == backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_green.png', new BMap.Size(20, 20));
+ } else {
+ return true;
+ }
+ //var myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ var marker = new BMap.Marker(point, {icon: myIcon});
+ map.addOverlay(marker);
+ trackPoints.push(point);
+ $("#tab").append("<tr><td>" + lon + "</td><td>" + lat + "</td><td>" + heigh + "</td><td>" + concentration + "</td></tr>");//���������������������������
+ var opts = {
+ width: 80, // ������������������
+ height: 80, // ������������������
+ }
+ var msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78 + "<br>" +description+": "+concentration+unit;
+ if (concentration == "") {
+ msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78;
+ }
+ var infoWindow = new BMap.InfoWindow(msg, opts); // ������������������������
+ marker.addEventListener("click", function () {
+ map.openInfoWindow(infoWindow, point); //������������������
+ });
+ }
+ }
+ )
+ map.centerAndZoom(trackPoints, 17);// ������������������������������������
+ map.setViewport(trackPoints);// ������������������������������������������������������
+ }
+
+ function showNoDroppoint() {
+ var point = new BMap.Point(120.987287, 31.391562);
+ map.centerAndZoom(point, 17);
+ setTimeout(function () {
+ document.getElementById("cpm").style.display = 'block';
+ document.getElementById("data").style.display = 'none';
+ }, 250);
+ }
+</script>
diff --git a/src/main/webapp/view/uavtracing.jsp b/src/main/webapp/view/uavtracing.jsp
new file mode 100644
index 0000000..fe7a19f
--- /dev/null
+++ b/src/main/webapp/view/uavtracing.jsp
@@ -0,0 +1,185 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
+ <style type="text/css">
+ body,
+ html,
+ #mapCanvas {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ margin: 0;
+ z-index: 0;
+ font-size: 14px;
+ font-family: "������������";
+ }
+
+ .main_body {
+ border: 0;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+
+ #cpm {
+ width: 300px;
+ height: 100px;
+ position: absolute;
+ background-color: #ffffff;
+ display: none;
+ left: 50%;
+ top: 50%;
+ margin-left: -150px;
+ margin-top: -50px;
+ z-index: 11;
+ color: #000000;
+ border: 2px solid #FF7F50;
+ font-size: 28px;
+ line-height: 100px;
+ text-align: center;
+ }
+
+ #data {
+ overflow: scroll;
+ width: 300px;
+ height: 400px;
+ top: 20px;
+ right: 5px;
+ position: absolute;
+ z-index: 1;
+ background-color: gainsboro;
+ opacity: 0.8;
+ border: 2px solid red;
+ }
+
+ .trr {
+ border-collapse: collapse;
+ }
+
+ .trr th, td {
+ border: 1px solid black;
+ text-align: center;
+ }
+
+ table {
+ border-collapse: collapse;
+ font-size: 12px;
+ }
+ </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">
+ <%--������������������--%>
+ <table id="tab" style="border:1px solid black;width: 280px">
+ </table>
+</div>
+<div class="main_body">
+ <div id="cpm">������������</div>
+ <div id="mapCanvas"></div> <!-- ������������������-->
+ <!-- ���sensorInfo,regionCode,regionName,monitorPoint,device-->
+ <div id="uavDroppointParams" style="display: none;">
+ ${requestScope.uavDroppointParams}
+ </div>
+</div>
+</body>
+</html>
+<script type="text/javascript">
+ var mapStyle = {
+ features: ["road", "building", "water", "land"], // ������������������poi
+ style: "normal" // ������������������������������
+ };
+ var params = $.parseJSON($("#uavDroppointParams").html());
+ var sensorInfo = params["sensorInfo"];
+ var sensorKey = params['sensorKey'];
+ var unit = params['unit'];
+ var description=params['description'];
+ var backgroundValue=32;
+ $("#tab").append("<tr><td>������(��)</td><td>������(��)</td><td>������(m)</td><td>"+description+"(" + unit + ")</td></tr>");//���������������������������
+ var map = new BMap.Map("mapCanvas", {enableMapClick: false});
+ map.setMapStyle(mapStyle);
+ map.enableScrollWheelZoom(true); // ������������������������
+ var navigation = new BMap.NavigationControl({
+ anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
+ type: BMAP_NAVIGATION_CONTROL_LARGE
+ });
+ map.addControl(navigation);
+ map.addControl(new BMap.ScaleControl());
+ if (sensorInfo.length == 0) {
+ showNoDroppoint();
+ }
+ var trackPoints = []; //���������������������������������������������������������������
+ 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)).toFixed(4);
+ var lat = parseFloat(value.e77.substr(0, value.e77.length - 1)).toFixed(4);
+ if (lon <= 0 || lat <= 0 || lon > 180 || lat > 180) {
+ return true;
+ }
+ var heigh = parseFloat(value.e78.substr(0, value.e78.length - 1));
+ var concentration = "";
+ $.each(value, function (key, data) {
+ if (key == sensorKey) {
+ concentration = data == "undefined" ? "" : parseFloat(data.substr(0, data.length - 1));
+ }
+ });
+ var point = new BMap.Point(lon, lat);
+ var myIcon = "";
+ if (concentration > backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ } else if (concentration == backgroundValue) {
+ myIcon = new BMap.Icon('/img/uav_green.png', new BMap.Size(20, 20));
+ } else {
+ return true;
+ }
+ //var myIcon = new BMap.Icon('/img/uav_red.png', new BMap.Size(20, 20));
+ var marker = new BMap.Marker(point, {icon: myIcon});
+ map.addOverlay(marker);
+ trackPoints.push(point);
+ $("#tab").append("<tr><td>" + lon + "</td><td>" + lat + "</td><td>" + heigh + "</td><td>" + concentration + "</td></tr>");//���������������������������
+ var opts = {
+ width: 80, // ������������������
+ height: 80, // ������������������
+ }
+ var msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78 + "<br>" +description+": "+concentration+unit;
+ if (concentration == "") {
+ msg = "��������� " + value.e76 + "<br>��������� " + value.e77 + "<br>��������� " + value.e78;
+ }
+ var infoWindow = new BMap.InfoWindow(msg, opts); // ������������������������
+ marker.addEventListener("click", function () {
+ map.openInfoWindow(infoWindow, point); //������������������
+ });
+ }
+ }
+ )
+ map.centerAndZoom(trackPoints, 17);// ������������������������������������
+ map.setViewport(trackPoints);// ������������������������������������������������������
+ }
+
+ function showNoDroppoint() {
+ var point = new BMap.Point(120.987287, 31.391562);
+ map.centerAndZoom(point, 17);
+ setTimeout(function () {
+ document.getElementById("cpm").style.display = 'block';
+ document.getElementById("data").style.display = 'none';
+ }, 250);
+ }
+</script>
--
Gitblit v1.8.0