From 4bf0125f2cbc291b763a3c0a83629a470189a771 Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Tue, 30 Jul 2019 16:34:18 +0800 Subject: [PATCH] 更新重合点逻辑及多点重合显示方式 --- src/main/webapp/view/uavTrajectory.jsp | 75 +++++++++++++++++++++++-------------- 1 files changed, 46 insertions(+), 29 deletions(-) diff --git a/src/main/webapp/view/uavTrajectory.jsp b/src/main/webapp/view/uavTrajectory.jsp index 0f058f3..5cf0e4c 100644 --- a/src/main/webapp/view/uavTrajectory.jsp +++ b/src/main/webapp/view/uavTrajectory.jsp @@ -64,7 +64,7 @@ var map = new BMap.Map("mapCanvas", {enableMapClick: false}); var trackPoints = []; //��������������������������������������������������������������� var winfowText; - var coincidentPoints=new Array(); + var coincidentPoints = new Array(); if (sensorInfo.length > 0) { $.each(sensorInfo, function (item, value) { trackPoints.push(new BMap.Point(value.e76, value.e77)); @@ -73,27 +73,31 @@ var startPoint = trackPoints[i]; var endPoint = trackPoints[i + 1]; var marker; - var distance=parseInt(map.getDistance(startPoint,endPoint)); + var distance = parseInt(map.getDistance(startPoint, endPoint)); map.addOverlay(polyline);// ��������������� var arrowLength;//��������������������� - if(distance<=2){ - arrowLength=0; - }else{ - arrowLength=5; + if (distance <= 5) { + arrowLength = 0; + } else if (distance > 5 && distance <= 10) { + arrowLength = 2; + } else { + arrowLength = 5; } - if(coincidentPoints.indexOf(i)>-1){ + if (coincidentPoints.indexOf(i) > -1) { var polyline = new BMap.Polyline([ trackPoints[i], - trackPoints[i+1] + trackPoints[i + 1] ], {strokeColor: "green", strokeWeight: 2, strokeOpacity: 1} ); - distance=parseInt(map.getDistance(trackPoints[i],trackPoints[i+1])); + distance = parseInt(map.getDistance(trackPoints[i], trackPoints[i + 1])); map.addOverlay(polyline);// ��������������� - if(distance<=2){ - arrowLength=0; - }else{ - arrowLength=5; + if (distance <= 5) { + arrowLength = 0; + } else if (distance > 5 && distance <= 10) { + arrowLength = 2; + } else { + arrowLength = 5; } addArrow(polyline, arrowLength, Math.PI / 7); //������������������������������������������������������������������ @@ -119,20 +123,18 @@ + "</br> ������x���" + sensorInfo[i].e79 + "</br> ������y���" + sensorInfo[i].e80 + "</br> ������z���" + sensorInfo[i].e81; - var count=0; - for (var j=i+1;j< trackPoints.length; j++) { - if (trackPoints[i].equals(trackPoints[j])) { + if (distance <= 1.9) { + winfowText = '<p id="' + i + '" onclick="openInfo(this)">' + "���������" + sensorInfo[i].uavDate + "</p>"; + } + var count = 0; + for (var j = i + 1; j < trackPoints.length; j++) { + distance = map.getDistance(trackPoints[i], trackPoints[j]).toFixed(5); + if (distance <= 1.9) { coincidentPoints.push(j); count++; - winfowTextAdd = "</br> ���������" + sensorInfo[j].uavDate - + "</br> ���������" + sensorInfo[j].e76 - + "</br> ���������" + sensorInfo[j].e77 - + "</br> ���������" + sensorInfo[j].e78 - + "</br> ������x���" + sensorInfo[j].e79 - + "</br> ������y���" + sensorInfo[j].e80 - + "</br> ������z���" + sensorInfo[j].e81; + winfowTextAdd = '<p id="' + j + '" onclick="openInfo(this)">' + "���������" + sensorInfo[j].uavDate + "</p>"; winfowText += winfowTextAdd; - if(j==trackPoints.length-1){ + if (j == trackPoints.length - 1) { marker = new BMap.Marker(trackPoints[j], {icon: endIcon, offset: new BMap.Size(0, -20)}); map.setCurrentCity("������"); map.setMapStyle(mapStyle); @@ -141,7 +143,7 @@ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, type: BMAP_NAVIGATION_CONTROL_LARGE }); - map.maxZoom=20; + map.maxZoom = 20; map.addControl(navigation); map.addControl(new BMap.ScaleControl()); } @@ -149,14 +151,28 @@ } (function (x) { - var infoWindow = new BMap.InfoWindow(winfowText, {enableMessage: false, width: 30}); + var infoWindow = new BMap.InfoWindow(winfowText, {enableMessage: false}); marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); }); })(i); - if(count>0){ - var lab = new BMap.Label(count+1, {position: startPoint, offset: new BMap.Size(-7, -23)}); + function openInfo(e) { + var point = new BMap.Point(sensorInfo[e.id].e76,sensorInfo[e.id].e77); + // ������������������������ + var infoWindow1 = new BMap.InfoWindow("���������" + sensorInfo[e.id].uavDate + + "</br> ���������" + sensorInfo[e.id].e76 + + "</br> ���������" + sensorInfo[e.id].e77 + + "</br> ���������" + sensorInfo[e.id].e78 + + "</br> ������x���" + sensorInfo[e.id].e79 + + "</br> ������y���" + sensorInfo[e.id].e80 + + "</br> ������z���" + sensorInfo[e.id].e81, {enableMessage: false}); + //������������������ + map.openInfoWindow(infoWindow1, point); + } + + if (count > 0) { + var lab = new BMap.Label(count + 1, {position: startPoint, offset: new BMap.Size(-7, -23)}); lab.setStyle({ color: "#fff", fontSize: "16px", @@ -165,7 +181,6 @@ fontWeight: "bold" }); map.addOverlay(lab); - } map.addOverlay(marker); var polyline = new BMap.Polyline([ @@ -180,6 +195,7 @@ } } } + var longitude; var latitude; var point; @@ -249,4 +265,5 @@ map.addOverlay(Arrow); } }; + </script> -- Gitblit v1.8.0