From d6747b2f8c31d2e879d4d59e19c9410c13c35228 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Wed, 05 Jun 2019 10:55:11 +0800
Subject: [PATCH] 增加溯源查询后返回页面

---
 src/main/webapp/view/traceability.jsp |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/view/traceability.jsp b/src/main/webapp/view/traceability.jsp
new file mode 100644
index 0000000..99d56d7
--- /dev/null
+++ b/src/main/webapp/view/traceability.jsp
@@ -0,0 +1,163 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@page isELIgnored="false" %>
+<%
+    String version ="1.000004";
+    response.setHeader("Cache-Control","no-store");
+    response.setHeader("Pragrma","no-cache");
+    response.setDateHeader("Expires",0);
+%>
+<!DOCTYPE html>
+<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>
+    <script type="text/javascript">
+        if(typeof (JSON) == 'undefined'){
+            $.getScript("js/json2.js");
+        }
+    </script>
+</head>
+<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;
+    }
+    .tools_box{
+        position: absolute;
+        height: 120px;
+        width: 400px;
+        right: 1px;
+        top: 20px;
+        z-index: 1;
+    }
+</style>
+
+<body>
+    <div class="main_body">
+        <div id="mapCanvas"></div> <!-- ������������ -->
+        <!-- ���sensorInfo,regionCode,regionName,monitorPoint,device-->
+        <div id="traceabilityParams" style="display: none;"> 
+            ${requestScope.traceabilityParams}
+        </div>
+    </div>
+</body>
+</html>
+
+<script>
+    var moralMap={};
+    var defaultParam = {
+        minZoom: 12,
+        maxZoom: 20
+    };
+    var mapStyle = {
+   	    features: ["road", "building", "water", "land"], // ������������������poi
+        style: "normal" // ������������������������������ 
+    };
+    var params = $.parseJSON($("#traceabilityParams").html());
+    moralMap['params'] = params;
+    var sensorInfo=params["sensorInfo"];
+    var regionName=params["regionName"];
+    var longitude=params["device"]["longitude"];
+    var latitude=params["device"]["latitude"];
+    var regoinNameNew= regionName.split(" ");
+    var cityName = regoinNameNew.length>1?regoinNameNew[1]:regoinNameNew[0];
+    var map = new BMap.Map("mapCanvas",defaultParam);
+    map.setCurrentCity(cityName);
+    map.setMapStyle(mapStyle);
+    map.enableScrollWheelZoom(true); // ������������������������
+    var navigation = new BMap.NavigationControl({
+        anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
+        type: BMAP_NAVIGATION_CONTROL_LARGE
+    });
+    map.addControl(navigation); // ������������������
+    var point = new BMap.Point(longitude, latitude);// ������������������������������������
+    map.centerAndZoom(point, 18);
+    var marker = new BMap.Marker(point);        // ������������    
+    map.addOverlay(marker);                
+    var polyline = new BMap.Polyline([    
+        new BMap.Point(longitude, latitude),    
+        new BMap.Point(longitude+0.005, latitude+0.005)    
+    	],    
+    	{strokeColor:"blue", strokeWeight:1, strokeOpacity:0.5}    
+    );    
+    map.addOverlay(polyline);// ���������������
+    // ���������������������
+    function addArrow(polyline,length,angleValue){ 
+        var linePoint=polyline.getPath();// ���������������
+        var arrowCount=linePoint.length;
+        for(var i =1;i<arrowCount;i++){ // ������������������������
+            var pixelStart=map.pointToPixel(linePoint[i-1]);
+            var pixelEnd=map.pointToPixel(linePoint[i]);
+            var angle=angleValue;// ������������������������
+            var r=length; // r/Math.sin(angle)������������������
+            var delta=0; // ���������������������������������
+            var param=0; // ������������������
+            var pixelTemX,pixelTemY,poMiddleX,poMiddleY;// ���������������
+            var pixelX,pixelY,pixelX1,pixelY1;// ���������������
+            poMiddleX=(pixelEnd.x+pixelStart.x)/2;
+            poMiddleY=(pixelEnd.y+pixelStart.y)/2;
+            if(poMiddleX-pixelStart.x==0){ // ������������������
+                pixelTemX=poMiddleX;
+                if(poMiddleY>pixelStart.y){
+                    pixelTemY=poMiddleY-r;
+                }else{
+                    pixelTemY=poMiddleY+r;
+                } 
+                // ���������������������������������������������������������������������������������������
+                pixelX=pixelTemX-r*Math.tan(angle); 
+                pixelX1=pixelTemX+r*Math.tan(angle);
+                pixelY=pixelY1=pixelTemY;
+            }else{ // ���������������
+                delta=(poMiddleY-pixelStart.y)/(poMiddleX-pixelStart.x);
+                param=Math.sqrt(delta*delta+1);
+                if((poMiddleX-pixelStart.x)<0){ // ������������������
+                    pixelTemX=poMiddleX+ r/param;
+                    pixelTemY=poMiddleY+delta*r/param;
+                }else{  // ������������������
+                    pixelTemX=poMiddleX- r/param;
+                    pixelTemY=poMiddleY-delta*r/param;
+                }
+                // ���������������������������������������������������������������������������������������
+                pixelX=pixelTemX+ Math.tan(angle)*r*delta/param;
+                pixelY=pixelTemY-Math.tan(angle)*r/param;
+                pixelX1=pixelTemX- Math.tan(angle)*r*delta/param;
+                pixelY1=pixelTemY+Math.tan(angle)*r/param;
+            }
+            var pointArrow=map.pixelToPoint(new BMap.Pixel(pixelX,pixelY));
+            var pointArrow1=map.pixelToPoint(new BMap.Pixel(pixelX1,pixelY1));
+            var pointMiddle=map.pixelToPoint(new BMap.Pixel(poMiddleX,poMiddleY));
+            var Arrow = new BMap.Polyline([pointArrow,pointMiddle,pointArrow1], 
+                {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5});
+            map.addOverlay(Arrow);
+        }
+    };
+    addArrow(polyline,40,Math.PI/7);
+    // ������������������
+    var icon1 = new BMap.Icon("/img/ico00.png",new BMap.Size(50,50));
+    var mark1 = new BMap.Marker(new BMap.Point(longitude,latitude),{icon:icon1});
+    map.addOverlay(mark1); 
+    var mark2 = new BMap.Marker(new BMap.Point(longitude+0.005,latitude+0.005),{icon:icon1});
+    map.addOverlay(mark2); 
+  
+</script>

--
Gitblit v1.8.0