ZhuDongming
2019-07-25 b419209310112939039b6e2935bee6c53cdf7a52
新增无人机飞行轨迹地图页面
1 files added
141 ■■■■■ changed files
src/main/webapp/view/uavTrajectory.jsp 141 ●●●●● patch | view | raw | blame | history
src/main/webapp/view/uavTrajectory.jsp
New file
@@ -0,0 +1,141 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>
</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;
    }
</style>
<body>
<div class="main_body">
    <div id="mapCanvas"></div> <!-- 百度地图 -->
    <!-- 传sensorInfo,regionCode,regionName,monitorPoint,device-->
    <div id="uavTrajectoryParams" style="display: none;">
        ${requestScope.uavTrajectoryParams}
    </div>
</div>
</body>
</html>
<script type="text/javascript">
    var moralMap = {};
    /*var defaultParam = {
        minZoom: 12,
        maxZoom: 20
    };*/
    var mapStyle = {
        features: ["road", "building", "water", "land"], // 隐藏地图上的poi
        style: "normal" // 设置地图风格为高端黑
    };
    var params = $.parseJSON($("#uavTrajectoryParams").html());
    moralMap['params'] = params;
    var sensorInfo = params["sensorInfo"];
    //var map = new BMap.Map("mapCanvas", defaultParam);
    var map = new BMap.Map("mapCanvas", { enableMapClick: false });
    var trackPoints = []; //用来存放从后台获取到的所有历史轨迹点的数据
    if (sensorInfo.length > 0) {
        $.each(sensorInfo, function (item, value) {
            trackPoints.push(new BMap.Point(value.e76, value.e77));
        })
        for (var i = 0; i < trackPoints.length - 1; i++) {
            var startPoint = trackPoints[i];
            var endPoint = trackPoints[i + 1];
            showPath(startPoint, endPoint);
        }
        $.each(sensorInfo, function (item, value) {
            if(item==0){
                map.centerAndZoom(new BMap.Point(value.e76, value.e77), 17);
            }
            var flyingPoint = new BMap.Point(value.e76, value.e77);
            var marker = new BMap.Marker(flyingPoint);
            var infoWindow = new BMap.InfoWindow("时间:"+value.uavDate
                +"</br> 经度:"+value.e76
                +"</br> 纬度:"+value.e77
                +"</br> 高度:"+value.e78
                +"</br> 速度x:"+value.e79
                +"</br> 速度y:"+value.e80
                +"</br> 速度z:"+value.e81,
                { enableMessage: false, width: 30, height: 130 });
            marker.addEventListener("click", function ()
            {
                this.openInfoWindow(infoWindow);
            });
            map.addOverlay(marker);
            var label = new BMap.Label(item + 1, {position: flyingPoint, offset: item<=8?new BMap.Size(-5, -22):new BMap.Size(-9, -22)});
            label.setStyle({
                color: "#fff",
                fontSize: "10px",
                backgroundColor: "0.05",
                border: "0",
                fontWeight: "bold"
            });
            map.addOverlay(label);
        });
    }
    var longitude;
    var latitude;
    var point;
    if (sensorInfo.length == 0) {
        longitude = 120.987287;
        latitude = 31.391562;
        point = new BMap.Point(longitude, latitude);
        map.centerAndZoom(point, 17);
    }
    map.setCurrentCity("昆山");
    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());
    function showPath(startPoint, endPoint) {
        var walking = new BMap.WalkingRoute(map, {renderOptions:{map: map, autoViewport: true},
            onMarkersSet:function(routes) {
                map.removeOverlay(routes[0].marker); //删除起点
                map.removeOverlay(routes[1].marker);//删除终点
            }
        });
        var polyline = new BMap.Polyline([
                startPoint,
                endPoint
            ],
            {strokeColor: "green", strokeWeight: 2, strokeOpacity: 1}
        );
        map.addOverlay(polyline);// 画两点间线
    }
</script>