Commit f5ea96b03ea3d018285485284b981d4bc8d46b81

Authored by 王通
1 parent e350383f

1.

src/main/resources/static/pages/base/stationroute/js/routes-operation.js
@@ -17,6 +17,8 @@ var RoutesOperation = (function () { @@ -17,6 +17,8 @@ var RoutesOperation = (function () {
17 var road_win_show_p; 17 var road_win_show_p;
18 // 被编辑的路段 18 // 被编辑的路段
19 var editPolyline; 19 var editPolyline;
  20 + // 前置站点
  21 + var premise;
20 var styleOptions = { 22 var styleOptions = {
21 strokeColor : "blue", 23 strokeColor : "blue",
22 fillColor : "blue", 24 fillColor : "blue",
@@ -30,6 +32,16 @@ var RoutesOperation = (function () { @@ -30,6 +32,16 @@ var RoutesOperation = (function () {
30 strokeWeight: 2, 32 strokeWeight: 2,
31 strokeOpacity: 0.7 33 strokeOpacity: 0.7
32 } 34 }
  35 + var polygonDmOptions = {
  36 + isOpen : false,
  37 + enableDrawingTool : false,
  38 + drawingToolOptions : {
  39 + anchor : BMAP_ANCHOR_TOP_RIGHT,
  40 + offset : new BMap.Size(5, 5),
  41 + scale : 0.8
  42 + },
  43 + polygonOptions : styleOptions
  44 + }
33 var operation = { 45 var operation = {
34 getAddStationRoute: function () { 46 getAddStationRoute: function () {
35 return addStationRoute; 47 return addStationRoute;
@@ -72,16 +84,18 @@ var RoutesOperation = (function () { @@ -72,16 +84,18 @@ var RoutesOperation = (function () {
72 } 84 }
73 RoutesService.getAllLineVersions(lineId, function(lineVersions) { 85 RoutesService.getAllLineVersions(lineId, function(lineVersions) {
74 $('#versions option').remove(); 86 $('#versions option').remove();
75 - for (var i = 0;i < lineVersions.length;i++) {  
76 - var lineVersion = lineVersions[i], selected = false; 87 + for (var i = 0, selected = 0;i < lineVersions.length;i++) {
  88 + var lineVersion = lineVersions[i];
77 if (lineVersion.status == 1 || i == lineVersions.length - 1) { 89 if (lineVersion.status == 1 || i == lineVersions.length - 1) {
78 - operation.TreeUpOrDown(lineId, '0', lineVersion.versions);  
79 - operation.TreeUpOrDown(lineId, '1', lineVersion.versions);  
80 status = lineVersion.status; 90 status = lineVersion.status;
81 versions = lineVersion.versions; 91 versions = lineVersion.versions;
82 - selected = true; 92 + selected++;
  93 + }
  94 + $('#versions').append('<option value="' + lineVersion.versions + '" status="' + lineVersion.status + (selected === 1 ? '" selected' : '"') + '>' + lineVersion.name + ' (' + lineVersion.versions + ')' + '</option>');
  95 + if (selected === 1) {
  96 + operation.TreeUpOrDown(lineId, '0', lineVersion.versions);
  97 + operation.TreeUpOrDown(lineId, '1', lineVersion.versions);
83 } 98 }
84 - $('#versions').append('<option value=' + lineVersion.versions + ' status=' + lineVersion.status + (selected ? ' selected' : '') + '>' + lineVersion.name + ' (' + lineVersion.versions + ')' + '</option>');  
85 } 99 }
86 operation.setTiteText(lineId); 100 operation.setTiteText(lineId);
87 operation.registerEvents(); 101 operation.registerEvents();
@@ -118,7 +132,7 @@ var RoutesOperation = (function () { @@ -118,7 +132,7 @@ var RoutesOperation = (function () {
118 132
119 $("#versions").on('change', function() { 133 $("#versions").on('change', function() {
120 versions = $(this).val(); 134 versions = $(this).val();
121 - status = $($(this).find("option:selected")[0]).prop("status"); 135 + status = $('option:selected', $(this)).attr('status');
122 $('#upLine').click(); 136 $('#upLine').click();
123 137
124 if (status > 0) { 138 if (status > 0) {
@@ -405,14 +419,22 @@ var RoutesOperation = (function () { @@ -405,14 +419,22 @@ var RoutesOperation = (function () {
405 419
406 if(status > 0){ 420 if(status > 0){
407 htm += '<div>' + 421 htm += '<div>' +
408 - '<button class="info_win_btn" onclick="RoutesOperation.editCenterPoint(' + stationRoute.id+','+stationRoute.directions + ')">站级中心点</button>' +  
409 '<button class="info_win_btn" onclick="RoutesOperation.editStation(' + stationRoute.id+','+stationRoute.directions + ')">修改</button>' + 422 '<button class="info_win_btn" onclick="RoutesOperation.editStation(' + stationRoute.id+','+stationRoute.directions + ')">修改</button>' +
410 '<button class="info_win_btn" onclick="RoutesOperation.destroyStation('+ stationRoute.id + ','+stationRoute.line.id+','+stationRoute.directions+')">撤销</button>' + 423 '<button class="info_win_btn" onclick="RoutesOperation.destroyStation('+ stationRoute.id + ','+stationRoute.line.id+','+stationRoute.directions+')">撤销</button>' +
411 - '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.addBetweenStationRoad(' + stationRoute.id + ')">添加站点间路段</button>' +  
412 - '</div>'; 424 + '<button class="info_win_btn" onclick="RoutesOperation.editCenterPoint(' + stationRoute.id+','+stationRoute.directions + ')">站级中心点</button>';
  425 + if (stationRoute.stationMark == 'E') {
  426 + htm += '<button class="info_win_btn" onclick="RoutesOperation.geoPremise(' + stationRoute.id + ')">前置电子围栏</button></div>';
  427 + } else {
  428 + htm += '<button class="info_win_btn" id="addBetweenStationRoad" onclick="RoutesOperation.addBetweenStationRoad(' + stationRoute.id + ')">添加站点间路段</button></div>';
  429 + }
413 } 430 }
414 // 创建信息窗口 431 // 创建信息窗口
415 var infoWindow = new BMap.InfoWindow(htm, opts); 432 var infoWindow = new BMap.InfoWindow(htm, opts);
  433 + infoWindow.addEventListener('close', function() {
  434 + if (premise) {
  435 + baiduMap.removeOverlay(premise);
  436 + }
  437 + })
416 setTimeout(function () { 438 setTimeout(function () {
417 //开启信息窗口 439 //开启信息窗口
418 baiduMap.openInfoWindow(infoWindow, point); 440 baiduMap.openInfoWindow(infoWindow, point);
@@ -1025,6 +1047,83 @@ var RoutesOperation = (function () { @@ -1025,6 +1047,83 @@ var RoutesOperation = (function () {
1025 }, 1047 },
1026 1048
1027 /** 1049 /**
  1050 + * 前置电子围栏
  1051 + * @param stationRouteId
  1052 + */
  1053 + geoPremise: function (stationRouteId) {
  1054 + if (premise) {
  1055 + baiduMap.removeOverlay(premise);
  1056 + }
  1057 + RoutesService.findGeoPremise(stationRouteId, function (res) {
  1058 + if (res.id) {
  1059 + var coords = res.coords.split(', '), points = [];
  1060 + for (var i = 0;i < coords.length;i++) {
  1061 + var coordinates = coords[i].split(' ');
  1062 + points.push(new BMap.Point(coordinates[0], coordinates[1]));
  1063 + }
  1064 + premise = new BMap.Polygon(points);
  1065 + premise.cdata = res;
  1066 + premise.enableEditing(true);
  1067 + premise.addEventListener('dblclick', operation.premiseDblclickHandler);
  1068 + baiduMap.addOverlay(premise);
  1069 + } else {
  1070 + layer.confirm('没有电子围栏,是否添加!', {
  1071 + btn : [ '确认', '取消' ]
  1072 + },function () {
  1073 + layer.closeAll();
  1074 + var drawingManager = new BMapLib.DrawingManager(baiduMap, polygonDmOptions);
  1075 + drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
  1076 + drawingManager.open();
  1077 + drawingManager.addEventListener('polygoncomplete', function(polygon) {
  1078 + drawingManager.close();
  1079 + baiduMap.removeOverlay(polygon);
  1080 + var points = polygon.getPath();
  1081 + if (points.length < 3) {
  1082 + layer.msg('坐标点不能小于三个,请点击"退出编辑"后重新修改');
  1083 + baiduMap.removeOverlay(polygon);
  1084 +
  1085 + return false;
  1086 + } else {
  1087 + var bufferPolygonWkt = new Array();
  1088 + for(var i = 0;i < points.length;i++) {
  1089 + bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
  1090 + }
  1091 + bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
  1092 + RoutesService.saveGeoPremise({id: stationRouteId, coords: bufferPolygonWkt.join(', ')}, function(res) {
  1093 + if (res.status == 'SUCCESS') {
  1094 + layer.msg('前置电子围栏保存成功!');
  1095 + } else {
  1096 + layer.msg('前置电子围栏保存失败!');
  1097 + }
  1098 + })
  1099 + }
  1100 + });
  1101 +
  1102 + });
  1103 + }
  1104 + })
  1105 + },
  1106 +
  1107 + /**
  1108 + * 前置围栏双击保存
  1109 + */
  1110 + premiseDblclickHandler: function (event) {
  1111 + var points = event.target.getPath(), cdata = event.target.cdata;
  1112 + var bufferPolygonWkt = new Array();
  1113 + for(var i = 0;i < points.length;i++) {
  1114 + bufferPolygonWkt.push(points[i].lng + ' ' + points[i].lat)
  1115 + }
  1116 + bufferPolygonWkt.push(points[0].lng + ' ' + points[0].lat)
  1117 + RoutesService.saveGeoPremise({id: cdata.id, coords: bufferPolygonWkt.join(', ')}, function(res) {
  1118 + if (res.status == 'SUCCESS') {
  1119 + layer.msg('前置电子围栏保存成功!');
  1120 + } else {
  1121 + layer.msg('前置电子围栏保存失败!');
  1122 + }
  1123 + })
  1124 + },
  1125 +
  1126 + /**
1028 * 关闭modal时的清理 1127 * 关闭modal时的清理
1029 * @param station 1128 * @param station
1030 */ 1129 */
@@ -1919,16 +2018,17 @@ var RoutesOperation = (function () { @@ -1919,16 +2018,17 @@ var RoutesOperation = (function () {
1919 var harr = new Array, i = 0; 2018 var harr = new Array, i = 0;
1920 for (i = 0;i < points.length;i++) { 2019 for (i = 0;i < points.length;i++) {
1921 harr.push('<option value="', points[i].stationName, '_station">', points[i].stationName, '</option>'); 2020 harr.push('<option value="', points[i].stationName, '_station">', points[i].stationName, '</option>');
1922 - points[i].bdPoint = points[i].station.bJwpoints;  
1923 - points[i].bdPoints = points[i].station.bdPolygon;  
1924 - points[i].shapesType = points[i].station.shapesType;  
1925 - points[i].radius = points[i].station.radius; 2021 + points[i].bdPoint = points[i].station.centerPointWkt;
  2022 + points[i].bdPoints = points[i].bufferPolygonWkt;
  2023 + points[i].shapedType = points[i].shapedType;
  2024 + points[i].radius = points[i].radius;
1926 name2Point[points[i].stationName + '_station'] = points[i]; 2025 name2Point[points[i].stationName + '_station'] = points[i];
1927 } 2026 }
1928 harr.push('<option value="', carpark.parkName, '_park">', carpark.parkName, '</option>'); 2027 harr.push('<option value="', carpark.parkName, '_park">', carpark.parkName, '</option>');
1929 carpark.bdPoint = carpark.bCenterPoint; 2028 carpark.bdPoint = carpark.bCenterPoint;
1930 carpark.bdPoints = carpark.bParkPoint; 2029 carpark.bdPoints = carpark.bParkPoint;
1931 carpark.stationName = carpark.parkName; 2030 carpark.stationName = carpark.parkName;
  2031 + carpark.shapedType = carpark.shapesType;
1932 name2Point[carpark.parkName + '_park'] = carpark; 2032 name2Point[carpark.parkName + '_park'] = carpark;
1933 2033
1934 return harr.join(''); 2034 return harr.join('');
@@ -1980,20 +2080,20 @@ var RoutesOperation = (function () { @@ -1980,20 +2080,20 @@ var RoutesOperation = (function () {
1980 var routes = result1.data.routes, rootNode; 2080 var routes = result1.data.routes, rootNode;
1981 operation.clearMarkAndOverlays(); 2081 operation.clearMarkAndOverlays();
1982 var startPoint = name2Point[start.join('_')], endPoint = name2Point[end.join('_')], point, points; 2082 var startPoint = name2Point[start.join('_')], endPoint = name2Point[end.join('_')], point, points;
1983 - if (startPoint.shapesType === 'r') {  
1984 - point = startPoint.bdPoint.split(' '); 2083 + if (startPoint.shapedType === 'r') {
  2084 + point = startPoint.bdPoint.replace('POINT(', '').replace(')', '').split(' ');
1985 operation.drawCircle({lng : point[0], lat : point[1]}, startPoint.radius, startPoint.stationName, true); 2085 operation.drawCircle({lng : point[0], lat : point[1]}, startPoint.radius, startPoint.stationName, true);
1986 - } else if (startPoint.shapesType === 'd') { 2086 + } else if (startPoint.shapedType === 'd') {
1987 points = startPoint.bdPoints; 2087 points = startPoint.bdPoints;
1988 points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', ''); 2088 points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
1989 points = points.split(',') 2089 points = points.split(',')
1990 operation.drawPolygon(points, startPoint.stationName, true); 2090 operation.drawPolygon(points, startPoint.stationName, true);
1991 } 2091 }
1992 2092
1993 - if (endPoint.shapesType === 'r') {  
1994 - point = endPoint.bdPoint.split(' '); 2093 + if (endPoint.shapedType === 'r') {
  2094 + point = endPoint.bdPoint.replace('POINT(', '').replace(')', '').split(' ');
1995 operation.drawCircle({lng : point[0], lat : point[1]}, endPoint.radius, endPoint.stationName, true); 2095 operation.drawCircle({lng : point[0], lat : point[1]}, endPoint.radius, endPoint.stationName, true);
1996 - } else if (endPoint.shapesType === 'd') { 2096 + } else if (endPoint.shapedType === 'd') {
1997 points = endPoint.bdPoints; 2097 points = endPoint.bdPoints;
1998 points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', ''); 2098 points = points.replace('POLYGON ((', '').replace('POLYGON((', '').replaceAll(', ', ',').replace('))', '');
1999 points = points.split(',') 2099 points = points.split(',')
@@ -2351,22 +2451,7 @@ var RoutesOperation = (function () { @@ -2351,22 +2451,7 @@ var RoutesOperation = (function () {
2351 2451
2352 /***************************************************drawingmanager*******************************************************/ 2452 /***************************************************drawingmanager*******************************************************/
2353 initStationDrawingManager: function() { 2453 initStationDrawingManager: function() {
2354 - stationDrawingManager = new BMapLib.DrawingManager(baiduMap, {  
2355 - //是否开启绘制模式  
2356 - isOpen : false,  
2357 - //是否显示工具栏  
2358 - enableDrawingTool : false,  
2359 - drawingToolOptions : {  
2360 - //位置  
2361 - anchor : BMAP_ANCHOR_TOP_RIGHT,  
2362 - //偏离值  
2363 - offset : new BMap.Size(5, 5),  
2364 - //工具栏缩放比例  
2365 - scale : 0.8  
2366 - },  
2367 - //线的样式  
2368 - polygonOptions : styleOptions  
2369 - }); 2454 + stationDrawingManager = new BMapLib.DrawingManager(baiduMap, polygonDmOptions);
2370 2455
2371 // 添加绘画完成事件 2456 // 添加绘画完成事件
2372 stationDrawingManager.addEventListener('polygoncomplete', function(polygon) { 2457 stationDrawingManager.addEventListener('polygoncomplete', function(polygon) {