Commit dbcfc93a35aee453e032eb69d4e1fd0a2d4a4c8f
1 parent
84de7454
1.站点可手动录入坐标信息,优先以录入的wgs84坐标为准
Showing
10 changed files
with
507 additions
and
456 deletions
src/main/java/com/bsth/service/impl/StationServiceImpl.java
| ... | ... | @@ -164,6 +164,13 @@ public class StationServiceImpl extends BaseServiceImpl<Station, Integer> implem |
| 164 | 164 | station.setCenterPoint(baidu); |
| 165 | 165 | station.setCenterPointWgs(wgs); |
| 166 | 166 | } |
| 167 | + wkt = station.getCenterPointWgsWkt(); | |
| 168 | + if (!StringUtils.isEmpty(wkt)) { | |
| 169 | + org.geolatte.geom.Point wgs = (org.geolatte.geom.Point) Wkt.fromWkt(wkt); | |
| 170 | + org.geolatte.geom.Point baidu = GeoConverter.pointWgs2bd(wkt); | |
| 171 | + station.setCenterPoint(baidu); | |
| 172 | + station.setCenterPointWgs(wgs); | |
| 173 | + } | |
| 167 | 174 | } |
| 168 | 175 | |
| 169 | 176 | final static class StationBatchPreparedStatementSetter implements BatchPreparedStatementSetter { | ... | ... |
src/main/java/com/bsth/util/GeoConverter.java
| ... | ... | @@ -20,6 +20,16 @@ public class GeoConverter { |
| 20 | 20 | return (Point) Wkt.fromWkt(String.format("POINT(%s)", location.toString())); |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | + public static Point pointWgs2bd(String wkt) { | |
| 24 | + if (wkt.indexOf("POINT") != 0) { | |
| 25 | + throw new IllegalArgumentException("异常的Point wkt数据"); | |
| 26 | + } | |
| 27 | + CoordinateConverter.Location location = CoordinateConverter.LocationMake(wkt); | |
| 28 | + location = CoordinateConverter.transformFromBDToWGS(location); | |
| 29 | + | |
| 30 | + return (Point) Wkt.fromWkt(String.format("POINT(%s)", location.toString())); | |
| 31 | + } | |
| 32 | + | |
| 23 | 33 | public static Polygon polygonBd2wgs(String wkt) { |
| 24 | 34 | if (wkt.indexOf("POLYGON") != 0) { |
| 25 | 35 | throw new IllegalArgumentException("异常的Polygon wkt数据"); | ... | ... |
src/main/resources/ftp.properties
| 1 | -ftp.url=116.236.238.212 | |
| 2 | -ftp.port=21 | |
| 3 | -ftp.username=transport | |
| 4 | -ftp.password=transport123 | |
| 5 | -ftp.path=down/ | |
| 6 | - | |
| 7 | -#ftp.url=192.168.168.101 | |
| 8 | -#ftp.port=21 | |
| 9 | -#ftp.username=testftpservice | |
| 10 | -#ftp.password= 123 | |
| 1 | +ftp.url=118.113.164.50 | |
| 2 | +ftp.port=10021 | |
| 3 | +ftp.username=ftpadmin | |
| 4 | +ftp.password=ftp@123 | |
| 5 | +ftp.path=/transport/down/ | |
| 6 | + | |
| 7 | +#ftp.url=192.168.168.101 | |
| 8 | +#ftp.port=21 | |
| 9 | +#ftp.username=testftpservice | |
| 10 | +#ftp.password= 123 | |
| 11 | 11 | #ftp.path= ftptest/ |
| 12 | 12 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/base/carpark/js/add-vmap-world.js
| 1 | -var addCarParkVmapWorlds = function() { | |
| 2 | - var mapB = '', circle = '', drawingManager = '',circle='',marker=''; | |
| 3 | - var Bmap = { | |
| 4 | - init : function() { | |
| 5 | - // 设置中心点, | |
| 6 | - var CENTER_POINT = {lng : 121.528733,lat : 31.237425}; | |
| 7 | - // 百度API Key | |
| 8 | - var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; | |
| 9 | - // 初始化百度地图 | |
| 10 | - mapB = new BMap.Map("addCarParkbmap_basic"); | |
| 11 | - //中心点和缩放级别 | |
| 12 | - mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); | |
| 13 | - //启用地图拖拽事件,默认启用(可不写) | |
| 14 | - mapB.enableDragging(); | |
| 15 | - //启用地图滚轮放大缩小 | |
| 16 | - mapB.enableScrollWheelZoom(); | |
| 17 | - //禁用鼠标双击放大 | |
| 18 | - mapB.disableDoubleClickZoom(); | |
| 19 | - //启用键盘上下左右键移动地图 | |
| 20 | - mapB.enableKeyboard(); | |
| 21 | - var styleOptions = { | |
| 22 | - //边线颜色。 | |
| 23 | - strokeColor : "blue", | |
| 24 | - //填充颜色。当参数为空时,圆形将没有填充效果。 | |
| 25 | - fillColor : "blue", | |
| 26 | - //边线的宽度,以像素为单位。 | |
| 27 | - strokeWeight : 3, | |
| 28 | - //边线透明度,取值范围0 - 1。 | |
| 29 | - strokeOpacity : 0.8, | |
| 30 | - //填充的透明度,取值范围0 - 1。 | |
| 31 | - fillOpacity : 0.6, | |
| 32 | - //边线的样式,solid或dashed。 | |
| 33 | - strokeStyle : 'solid' | |
| 34 | - }; | |
| 35 | - // 创建鼠标绘制管理类 | |
| 36 | - drawingManager = new BMapLib.DrawingManager(mapB, { | |
| 37 | - //是否开启绘制模式 | |
| 38 | - isOpen : false, | |
| 39 | - //是否显示工具栏 | |
| 40 | - enableDrawingTool : false, | |
| 41 | - drawingToolOptions : { | |
| 42 | - //位置 | |
| 43 | - anchor : BMAP_ANCHOR_TOP_RIGHT, | |
| 44 | - //偏离值 | |
| 45 | - offset : new BMap.Size(5, 5), | |
| 46 | - //工具栏缩放比例 | |
| 47 | - scale : 0.8 | |
| 48 | - }, | |
| 49 | - //线的样式 | |
| 50 | - polygonOptions : styleOptions | |
| 51 | - }); | |
| 52 | - // 添加绘画完成事件 | |
| 53 | - drawingManager.addEventListener('polygoncomplete', function(e) { | |
| 54 | - drawingManager.close(); | |
| 55 | - if (e.getPath().length <= 2) { | |
| 56 | - // 弹出提示消息 | |
| 57 | - layer.msg('坐标点不能小于等于两个...'); | |
| 58 | - // 清除地图覆盖物 | |
| 59 | - mapB.clearOverlays(); | |
| 60 | - drawingManager.open(); | |
| 61 | - return false; | |
| 62 | - }else { | |
| 63 | - var pointE = e; | |
| 64 | - // 多变行质心点 | |
| 65 | - var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat; | |
| 66 | - var addPolyGonLen_ = pointE.getPath().length; | |
| 67 | - for(var k =0;k<addPolyGonLen_;k++) { | |
| 68 | - if(k==0) { | |
| 69 | - bPloygonGrid = pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 70 | - }else { | |
| 71 | - bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 72 | - } | |
| 73 | - } | |
| 74 | - bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[0].lng + ' ' + pointE.getPath()[0].lat; | |
| 75 | - PublicFunctions.setFormInputValue(addSttationPoints_,bPloygonGrid,'d',''); | |
| 76 | - } | |
| 77 | - }); | |
| 78 | - return mapB; | |
| 79 | - }, | |
| 80 | - // 根据地理名称获取百度经纬度坐标 | |
| 81 | - localSearchFromAdreesToPoint: function(Address,cb) { | |
| 82 | - // 创建一个搜索类实例 | |
| 83 | - var localSearch = new BMap.LocalSearch(mapB); | |
| 84 | - // 检索完成后的回调函数。 | |
| 85 | - localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 86 | - var resultPoints = ''; | |
| 87 | - if(searchResult) { | |
| 88 | - // 返回索引指定的结果。索引0表示第1条结果 | |
| 89 | - var poi = searchResult.getPoi(0); | |
| 90 | - if(poi) { | |
| 91 | - //获取经度和纬度 | |
| 92 | - var stationNameChangePoint = new BMap.Point( poi.point.lng, poi.point.lat); | |
| 93 | - marker = new BMap.Marker(stationNameChangePoint); | |
| 94 | - var PanOptions ={noAnimation :true}; | |
| 95 | - mapB.panTo(stationNameChangePoint,PanOptions); | |
| 96 | - // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) | |
| 97 | - mapB.setZoom(18); | |
| 98 | - mapB.panBy(0,-80); | |
| 99 | - // 将标注添加到地图中 | |
| 100 | - mapB.addOverlay(marker); | |
| 101 | - //跳动的动画 | |
| 102 | - marker.setAnimation(BMAP_ANIMATION_BOUNCE); | |
| 103 | - cb && cb(stationNameChangePoint); | |
| 104 | - }else { | |
| 105 | - // 弹出添加成功提示消息 | |
| 106 | - layer.msg('无法获取停车场【'+Address+'】地理位置!'); | |
| 107 | - cb && cb(false); | |
| 108 | - } | |
| 109 | - }else { | |
| 110 | - // 弹出添加成功提示消息 | |
| 111 | - layer.msg('无法获取停车场【'+Address+'】地理位置!'); | |
| 112 | - cb && cb(false); | |
| 113 | - } | |
| 114 | - }); | |
| 115 | - // 根据检索词发起检索。 | |
| 116 | - localSearch.search(Address); | |
| 117 | - }, | |
| 118 | - | |
| 119 | - // 画圆 | |
| 120 | - pointsCircle : function(stationNameChangePoint) { | |
| 121 | - //创建圆 | |
| 122 | - circle = new BMap.Circle(stationNameChangePoint,100,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); | |
| 123 | - // 百度地图添加覆盖物圆 | |
| 124 | - mapB.addOverlay(circle); | |
| 125 | - // 开启编辑功能 | |
| 126 | - circle.enableEditing(); | |
| 127 | - // 编辑圆监听事件 | |
| 128 | - circle.addEventListener('remove',function() { | |
| 129 | - // 清除marker | |
| 130 | - mapB.removeOverlay(marker); | |
| 131 | - // 返回圆形的半径,单位为米。 | |
| 132 | - var newRadius = circle.getRadius(); | |
| 133 | - // 返回圆形的中心点坐标。 | |
| 134 | - var newCenter = circle.getCenter().lng + ' ' + circle.getCenter().lat; | |
| 135 | - var centre_New = [{potion:{lng:circle.getCenter().lng,lat:circle.getCenter().lat}}]; | |
| 136 | - circle = ''; | |
| 137 | - PublicFunctions.setFormInputValue(newCenter,'','r',Math.round(newRadius)); | |
| 138 | - }); | |
| 139 | - }, | |
| 140 | - // 打开绘画工具 | |
| 141 | - drawingManagerOpen : function() { | |
| 142 | - // 打开鼠标绘画工具 | |
| 143 | - drawingManager.open(); | |
| 144 | - // 设置属性 | |
| 145 | - drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON); | |
| 146 | - }, | |
| 147 | - drawingManagerClose : function() { | |
| 148 | - drawingManager.close(); | |
| 149 | - }, | |
| 150 | - clearMarkAndOverlays : function() { | |
| 151 | - // 清楚地图覆盖物 | |
| 152 | - mapB.clearOverlays(); | |
| 153 | - } | |
| 154 | - } | |
| 155 | - return Bmap; | |
| 1 | +var addCarParkVmapWorlds = function() { | |
| 2 | + var mapB = '', circle = '', drawingManager = '',circle='',marker=''; | |
| 3 | + var Bmap = { | |
| 4 | + init : function() { | |
| 5 | + // 设置中心点, | |
| 6 | + var CENTER_POINT = {lng: 103.52514, lat: 30.589808}; | |
| 7 | + // 百度API Key | |
| 8 | + var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; | |
| 9 | + // 初始化百度地图 | |
| 10 | + mapB = new BMap.Map("addCarParkbmap_basic"); | |
| 11 | + //中心点和缩放级别 | |
| 12 | + mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); | |
| 13 | + //启用地图拖拽事件,默认启用(可不写) | |
| 14 | + mapB.enableDragging(); | |
| 15 | + //启用地图滚轮放大缩小 | |
| 16 | + mapB.enableScrollWheelZoom(); | |
| 17 | + //禁用鼠标双击放大 | |
| 18 | + mapB.disableDoubleClickZoom(); | |
| 19 | + //启用键盘上下左右键移动地图 | |
| 20 | + mapB.enableKeyboard(); | |
| 21 | + var styleOptions = { | |
| 22 | + //边线颜色。 | |
| 23 | + strokeColor : "blue", | |
| 24 | + //填充颜色。当参数为空时,圆形将没有填充效果。 | |
| 25 | + fillColor : "blue", | |
| 26 | + //边线的宽度,以像素为单位。 | |
| 27 | + strokeWeight : 3, | |
| 28 | + //边线透明度,取值范围0 - 1。 | |
| 29 | + strokeOpacity : 0.8, | |
| 30 | + //填充的透明度,取值范围0 - 1。 | |
| 31 | + fillOpacity : 0.6, | |
| 32 | + //边线的样式,solid或dashed。 | |
| 33 | + strokeStyle : 'solid' | |
| 34 | + }; | |
| 35 | + // 创建鼠标绘制管理类 | |
| 36 | + drawingManager = new BMapLib.DrawingManager(mapB, { | |
| 37 | + //是否开启绘制模式 | |
| 38 | + isOpen : false, | |
| 39 | + //是否显示工具栏 | |
| 40 | + enableDrawingTool : false, | |
| 41 | + drawingToolOptions : { | |
| 42 | + //位置 | |
| 43 | + anchor : BMAP_ANCHOR_TOP_RIGHT, | |
| 44 | + //偏离值 | |
| 45 | + offset : new BMap.Size(5, 5), | |
| 46 | + //工具栏缩放比例 | |
| 47 | + scale : 0.8 | |
| 48 | + }, | |
| 49 | + //线的样式 | |
| 50 | + polygonOptions : styleOptions | |
| 51 | + }); | |
| 52 | + // 添加绘画完成事件 | |
| 53 | + drawingManager.addEventListener('polygoncomplete', function(e) { | |
| 54 | + drawingManager.close(); | |
| 55 | + if (e.getPath().length <= 2) { | |
| 56 | + // 弹出提示消息 | |
| 57 | + layer.msg('坐标点不能小于等于两个...'); | |
| 58 | + // 清除地图覆盖物 | |
| 59 | + mapB.clearOverlays(); | |
| 60 | + drawingManager.open(); | |
| 61 | + return false; | |
| 62 | + }else { | |
| 63 | + var pointE = e; | |
| 64 | + // 多变行质心点 | |
| 65 | + var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat; | |
| 66 | + var addPolyGonLen_ = pointE.getPath().length; | |
| 67 | + for(var k =0;k<addPolyGonLen_;k++) { | |
| 68 | + if(k==0) { | |
| 69 | + bPloygonGrid = pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 70 | + }else { | |
| 71 | + bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 72 | + } | |
| 73 | + } | |
| 74 | + bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[0].lng + ' ' + pointE.getPath()[0].lat; | |
| 75 | + PublicFunctions.setFormInputValue(addSttationPoints_,bPloygonGrid,'d',''); | |
| 76 | + } | |
| 77 | + }); | |
| 78 | + return mapB; | |
| 79 | + }, | |
| 80 | + // 根据地理名称获取百度经纬度坐标 | |
| 81 | + localSearchFromAdreesToPoint: function(Address,cb) { | |
| 82 | + // 创建一个搜索类实例 | |
| 83 | + var localSearch = new BMap.LocalSearch(mapB); | |
| 84 | + // 检索完成后的回调函数。 | |
| 85 | + localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 86 | + var resultPoints = ''; | |
| 87 | + if(searchResult) { | |
| 88 | + // 返回索引指定的结果。索引0表示第1条结果 | |
| 89 | + var poi = searchResult.getPoi(0); | |
| 90 | + if(poi) { | |
| 91 | + //获取经度和纬度 | |
| 92 | + var stationNameChangePoint = new BMap.Point( poi.point.lng, poi.point.lat); | |
| 93 | + marker = new BMap.Marker(stationNameChangePoint); | |
| 94 | + var PanOptions ={noAnimation :true}; | |
| 95 | + mapB.panTo(stationNameChangePoint,PanOptions); | |
| 96 | + // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) | |
| 97 | + mapB.setZoom(18); | |
| 98 | + mapB.panBy(0,-80); | |
| 99 | + // 将标注添加到地图中 | |
| 100 | + mapB.addOverlay(marker); | |
| 101 | + //跳动的动画 | |
| 102 | + marker.setAnimation(BMAP_ANIMATION_BOUNCE); | |
| 103 | + cb && cb(stationNameChangePoint); | |
| 104 | + }else { | |
| 105 | + // 弹出添加成功提示消息 | |
| 106 | + layer.msg('无法获取停车场【'+Address+'】地理位置!'); | |
| 107 | + cb && cb(false); | |
| 108 | + } | |
| 109 | + }else { | |
| 110 | + // 弹出添加成功提示消息 | |
| 111 | + layer.msg('无法获取停车场【'+Address+'】地理位置!'); | |
| 112 | + cb && cb(false); | |
| 113 | + } | |
| 114 | + }); | |
| 115 | + // 根据检索词发起检索。 | |
| 116 | + localSearch.search(Address); | |
| 117 | + }, | |
| 118 | + | |
| 119 | + // 画圆 | |
| 120 | + pointsCircle : function(stationNameChangePoint) { | |
| 121 | + //创建圆 | |
| 122 | + circle = new BMap.Circle(stationNameChangePoint,100,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); | |
| 123 | + // 百度地图添加覆盖物圆 | |
| 124 | + mapB.addOverlay(circle); | |
| 125 | + // 开启编辑功能 | |
| 126 | + circle.enableEditing(); | |
| 127 | + // 编辑圆监听事件 | |
| 128 | + circle.addEventListener('remove',function() { | |
| 129 | + // 清除marker | |
| 130 | + mapB.removeOverlay(marker); | |
| 131 | + // 返回圆形的半径,单位为米。 | |
| 132 | + var newRadius = circle.getRadius(); | |
| 133 | + // 返回圆形的中心点坐标。 | |
| 134 | + var newCenter = circle.getCenter().lng + ' ' + circle.getCenter().lat; | |
| 135 | + var centre_New = [{potion:{lng:circle.getCenter().lng,lat:circle.getCenter().lat}}]; | |
| 136 | + circle = ''; | |
| 137 | + PublicFunctions.setFormInputValue(newCenter,'','r',Math.round(newRadius)); | |
| 138 | + }); | |
| 139 | + }, | |
| 140 | + // 打开绘画工具 | |
| 141 | + drawingManagerOpen : function() { | |
| 142 | + // 打开鼠标绘画工具 | |
| 143 | + drawingManager.open(); | |
| 144 | + // 设置属性 | |
| 145 | + drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON); | |
| 146 | + }, | |
| 147 | + drawingManagerClose : function() { | |
| 148 | + drawingManager.close(); | |
| 149 | + }, | |
| 150 | + clearMarkAndOverlays : function() { | |
| 151 | + // 清楚地图覆盖物 | |
| 152 | + mapB.clearOverlays(); | |
| 153 | + } | |
| 154 | + } | |
| 155 | + return Bmap; | |
| 156 | 156 | }(); |
| 157 | 157 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/base/carpark/js/carpark-positions-map.js
| 1 | -/** | |
| 2 | - * 百度地图 | |
| 3 | - * | |
| 4 | - */ | |
| 5 | - | |
| 6 | -var CarParkPWorldsBMap = function () { | |
| 7 | - | |
| 8 | - var mapValue='',drawingManager='',marker='',circle='',polygon=''; | |
| 9 | - | |
| 10 | - var Bmap = { | |
| 11 | - init : function() { | |
| 12 | - // 设置中心点, | |
| 13 | - var CENTER_POINT = {lng : 121.528733,lat : 31.237425}; | |
| 14 | - // 百度API Key | |
| 15 | - var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; | |
| 16 | - // 初始化百度地图 | |
| 17 | - mapValue = new BMap.Map("carParkbmap_basic"); | |
| 18 | - //中心点和缩放级别 | |
| 19 | - mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); | |
| 20 | - //启用地图拖拽事件,默认启用(可不写) | |
| 21 | - mapValue.enableDragging(); | |
| 22 | - //启用地图滚轮放大缩小 | |
| 23 | - mapValue.enableScrollWheelZoom(); | |
| 24 | - //禁用鼠标双击放大 | |
| 25 | - mapValue.disableDoubleClickZoom(); | |
| 26 | - //启用键盘上下左右键移动地图 | |
| 27 | - mapValue.enableKeyboard(); | |
| 28 | - var styleOptions = { | |
| 29 | - //边线颜色。 | |
| 30 | - strokeColor : "blue", | |
| 31 | - //填充颜色。当参数为空时,圆形将没有填充效果。 | |
| 32 | - fillColor : "blue", | |
| 33 | - //边线的宽度,以像素为单位。 | |
| 34 | - strokeWeight : 3, | |
| 35 | - //边线透明度,取值范围0 - 1。 | |
| 36 | - strokeOpacity : 0.8, | |
| 37 | - //填充的透明度,取值范围0 - 1。 | |
| 38 | - fillOpacity : 0.6, | |
| 39 | - //边线的样式,solid或dashed。 | |
| 40 | - strokeStyle : 'solid' | |
| 41 | - }; | |
| 42 | - // 创建鼠标绘制管理类 | |
| 43 | - drawingManager = new BMapLib.DrawingManager(mapValue, { | |
| 44 | - //是否开启绘制模式 | |
| 45 | - isOpen : false, | |
| 46 | - //是否显示工具栏 | |
| 47 | - enableDrawingTool : false, | |
| 48 | - drawingToolOptions : { | |
| 49 | - //位置 | |
| 50 | - anchor : BMAP_ANCHOR_TOP_RIGHT, | |
| 51 | - //偏离值 | |
| 52 | - offset : new BMap.Size(5, 5), | |
| 53 | - //工具栏缩放比例 | |
| 54 | - scale : 0.8 | |
| 55 | - }, | |
| 56 | - //线的样式 | |
| 57 | - polygonOptions : styleOptions | |
| 58 | - }); | |
| 59 | - // 添加绘画完成事件 | |
| 60 | - drawingManager.addEventListener('polygoncomplete', function(e) { | |
| 61 | - drawingManager.close(); | |
| 62 | - if (e.getPath().length <= 2) { | |
| 63 | - // 弹出提示消息 | |
| 64 | - layer.msg('坐标点不能小于等于两个...'); | |
| 65 | - // 清除地图覆盖物 | |
| 66 | - Bmap.clearMarkAndOverlays(); | |
| 67 | - // 加载该线路下所有站点位置添加到地图上 | |
| 68 | - return false; | |
| 69 | - }else { | |
| 70 | - var pointE = e; | |
| 71 | - // 多变行质心点 | |
| 72 | - var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat; | |
| 73 | - var addPolyGonLen_ = pointE.getPath().length; | |
| 74 | - for(var k =0;k<addPolyGonLen_;k++) { | |
| 75 | - if(k==0) { | |
| 76 | - bPloygonGrid = pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 77 | - }else { | |
| 78 | - bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 79 | - } | |
| 80 | - | |
| 81 | - } | |
| 82 | - bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[0].lng + ' ' + pointE.getPath()[0].lat; | |
| 83 | - /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 84 | - EditCarParkObj.setCarParkBcenterPoint(addSttationPoints_); | |
| 85 | - /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 86 | - EditCarParkObj.setCarParkShapesType('d'); | |
| 87 | - /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 88 | - EditCarParkObj.setCarParkRadius(''); | |
| 89 | - /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 90 | - EditCarParkObj.setCarParkBparkPoint(bPloygonGrid); | |
| 91 | - $.get('edit.html', function(m){ | |
| 92 | - $(pjaxContainer).append(m); | |
| 93 | - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 94 | - }); | |
| 95 | - } | |
| 96 | - }); | |
| 97 | - return mapValue; | |
| 98 | - }, | |
| 99 | - openDrawingManager : function() { | |
| 100 | - // 清楚地图覆盖物 | |
| 101 | - // mapValue.clearOverlays(); | |
| 102 | - // 打开鼠标绘画工具 | |
| 103 | - drawingManager.open(); | |
| 104 | - // 设置属性 | |
| 105 | - drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON); | |
| 106 | - }, | |
| 107 | - drawingManagerClose : function() { | |
| 108 | - drawingManager.close(); | |
| 109 | - }, | |
| 110 | - localSearchFromAdreesToPoint: function(Address) { | |
| 111 | - // 创建一个搜索类实例 | |
| 112 | - var localSearch = new BMap.LocalSearch(mapValue); | |
| 113 | - // 检索完成后的回调函数。 | |
| 114 | - localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 115 | - var resultPoints = ''; | |
| 116 | - if(searchResult) { | |
| 117 | - // 返回索引指定的结果。索引0表示第1条结果 | |
| 118 | - var poi = searchResult.getPoi(0); | |
| 119 | - if(poi) { | |
| 120 | - //获取经度和纬度 | |
| 121 | - var Points = poi.point.lng + ' ' + poi.point.lat; | |
| 122 | - var BJwpointsArray = Points.split(' '); | |
| 123 | - var stationNameChangePoint = new BMap.Point(BJwpointsArray[0], BJwpointsArray[1]); | |
| 124 | - var marker_stargt2 = new BMap.Marker(stationNameChangePoint); | |
| 125 | - var PanOptions ={noAnimation :true}; | |
| 126 | - mapValue.panTo(stationNameChangePoint,PanOptions); | |
| 127 | - mapValue.panBy(0,-200); | |
| 128 | - // 将标注添加到地图中 | |
| 129 | - mapValue.addOverlay(marker_stargt2); | |
| 130 | - //跳动的动画 | |
| 131 | - marker_stargt2.setAnimation(BMAP_ANIMATION_BOUNCE); | |
| 132 | - } | |
| 133 | - } | |
| 134 | - }); | |
| 135 | - // 根据检索词发起检索。 | |
| 136 | - localSearch.search(Address); | |
| 137 | - }, | |
| 138 | - /** 画圆 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ | |
| 139 | - pointsCircle : function(r,point,htm,opts) { | |
| 140 | - //创建圆 | |
| 141 | - circle = new BMap.Circle(point,r[0].carParkRadius,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); | |
| 142 | - // 允许覆盖物在map.clearOverlays方法中被清除 | |
| 143 | - circle.enableMassClear(); | |
| 144 | - // 百度地图添加覆盖物圆 | |
| 145 | - mapValue.addOverlay(circle); | |
| 146 | - // 创建信息窗口 | |
| 147 | - infoWindow = new BMap.InfoWindow(htm, opts); | |
| 148 | - // 自定义标注物图片 | |
| 149 | - var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20)); | |
| 150 | - // 创建点 | |
| 151 | - marker = new BMap.Marker(point,{icon : icon_target}); | |
| 152 | - // 把标注添物加到地图上 | |
| 153 | - mapValue.addOverlay(marker); | |
| 154 | - setTimeout(function(){ | |
| 155 | - //开启信息窗口 | |
| 156 | - marker.openInfoWindow(infoWindow,point); | |
| 157 | - },100); | |
| 158 | - // 是否在平移过程中禁止动画。(自1.2新增) | |
| 159 | - var PanOptions_ ={noAnimation :true}; | |
| 160 | - // 将地图的中心点更改为给定的点。 | |
| 161 | - mapValue.panTo(point,PanOptions_); | |
| 162 | - // 添加标志物监听事件 | |
| 163 | - marker.addEventListener("click",function() { | |
| 164 | - //开启信息窗口 | |
| 165 | - marker.openInfoWindow(infoWindow,point); | |
| 166 | - }); | |
| 167 | - }, | |
| 168 | - | |
| 169 | - /** 画多边形 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ | |
| 170 | - pointsPolygon : function(r,pointPolygon,htm,opts_polygon) { | |
| 171 | - // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) | |
| 172 | - mapValue.setZoom(17); | |
| 173 | - // 获取多边形坐标字符串 | |
| 174 | - var stationBPolygonGrid = r[0].carParkBparkPoint; | |
| 175 | - // 截取多边形坐标字符串 | |
| 176 | - var stationBPolygonGridStr = stationBPolygonGrid.substring(9,stationBPolygonGrid.length-2); | |
| 177 | - // 按逗号切割 | |
| 178 | - var pointPolygonArray = stationBPolygonGridStr.split(','); | |
| 179 | - // 多边形坐标集合 | |
| 180 | - var polygonP = []; | |
| 181 | - for(var v = 0;v<pointPolygonArray.length;v++) { | |
| 182 | - polygonP.push(new BMap.Point(pointPolygonArray[v].split(" ")[0],pointPolygonArray[v].split(" ")[1])); | |
| 183 | - } | |
| 184 | - // 画多边形 | |
| 185 | - polygon = new BMap.Polygon(polygonP, { | |
| 186 | - // 线条显色 | |
| 187 | - strokeColor : "blue", | |
| 188 | - // 边线的宽度,以像素为单位。 | |
| 189 | - strokeWeight : 2, | |
| 190 | - // 边线透明度,取值范围0 - 1。 | |
| 191 | - strokeOpacity : 0.5 | |
| 192 | - }); | |
| 193 | - // 增加地图覆盖物多边形 | |
| 194 | - mapValue.addOverlay(polygon); | |
| 195 | - // 创建信息窗口 | |
| 196 | - infoWindow = new BMap.InfoWindow(htm, opts_polygon); | |
| 197 | - // 自定义标注物图片 | |
| 198 | - var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20)); | |
| 199 | - // 创建点 | |
| 200 | - marker = new BMap.Marker(pointPolygon,{icon : icon_target}); | |
| 201 | - // 把标注添物加到地图上 | |
| 202 | - mapValue.addOverlay(marker); | |
| 203 | - // 是否在平移过程中禁止动画。(自1.2新增) | |
| 204 | - var PanOptions_ ={noAnimation :true}; | |
| 205 | - // 将地图的中心点更改为给定的点。 | |
| 206 | - mapValue.panTo(pointPolygon,PanOptions_); | |
| 207 | - // 将地图在水平位置上移动x像素,垂直位置上移动y像素。 | |
| 208 | - mapValue.panBy(10,-250,PanOptions_); | |
| 209 | - //开启信息窗口 | |
| 210 | - marker.openInfoWindow(infoWindow,pointPolygon); | |
| 211 | - }, | |
| 212 | - | |
| 213 | - // 编辑图形 | |
| 214 | - editShapes : function(stationShapesTypeV,mindex) { | |
| 215 | - // 关闭信息窗口 | |
| 216 | - marker.closeInfoWindow(); | |
| 217 | - // 清除marker | |
| 218 | - mapValue.removeOverlay(marker); | |
| 219 | - // 编辑圆 | |
| 220 | - if(stationShapesTypeV =='r') { | |
| 221 | - // 开启编辑功能 | |
| 222 | - circle.enableEditing(); | |
| 223 | - // 编辑圆监听事件 | |
| 224 | - circle.addEventListener('dblclick',function() { | |
| 225 | - // 关闭提示弹出层 | |
| 226 | - layer.close(mindex); | |
| 227 | - // 返回圆形的半径,单位为米。 | |
| 228 | - var newRadius = circle.getRadius(); | |
| 229 | - // 返回圆形的中心点坐标。 | |
| 230 | - var newCenter = circle.getCenter().lng + ' ' + circle.getCenter().lat; | |
| 231 | - var centre_New = [{potion:{lng:circle.getCenter().lng,lat:circle.getCenter().lat}}]; | |
| 232 | - /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 233 | - EditCarParkObj.setCarParkBcenterPoint(newCenter); | |
| 234 | - /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 235 | - EditCarParkObj.setCarParkShapesType('r'); | |
| 236 | - /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 237 | - EditCarParkObj.setCarParkRadius(Math.round(newRadius)); | |
| 238 | - /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 239 | - EditCarParkObj.setCarParkBparkPoint(''); | |
| 240 | - // 加载编辑页面 | |
| 241 | - $.get('edit.html', function(m){ | |
| 242 | - $(pjaxContainer).append(m); | |
| 243 | - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 244 | - }); | |
| 245 | - }); | |
| 246 | - // 编辑多变行 | |
| 247 | - }else if(stationShapesTypeV =='d') { | |
| 248 | - // 开启编辑功能(自 1.1 新增) | |
| 249 | - polygon.enableEditing(); | |
| 250 | - // 添加多变行编辑事件 | |
| 251 | - polygon.addEventListener('dblclick',function(e) { | |
| 252 | - // 获取编辑的多边形对象 | |
| 253 | - var edit_pointE = polygon; | |
| 254 | - var edit_bPloygonGrid = ""; | |
| 255 | - var editPolyGonLen_ = edit_pointE.getPath().length; | |
| 256 | - for(var k =0;k<editPolyGonLen_;k++) { | |
| 257 | - if(k==0) { | |
| 258 | - edit_bPloygonGrid = edit_pointE.getPath()[k].lng + ' ' + edit_pointE.getPath()[k].lat; | |
| 259 | - }else { | |
| 260 | - edit_bPloygonGrid = edit_bPloygonGrid + ',' + edit_pointE.getPath()[k].lng + ' ' + edit_pointE.getPath()[k].lat; | |
| 261 | - } | |
| 262 | - } | |
| 263 | - edit_bPloygonGrid = edit_bPloygonGrid + ',' + edit_pointE.getPath()[0].lng + ' ' + edit_pointE.getPath()[0].lat; | |
| 264 | - // 多边形中心点 | |
| 265 | - var centre_points = edit_pointE.getBounds().getCenter().lng + ' ' + edit_pointE.getBounds().getCenter().lat; | |
| 266 | - /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 267 | - EditCarParkObj.setCarParkBcenterPoint(centre_points); | |
| 268 | - /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 269 | - EditCarParkObj.setCarParkShapesType('d'); | |
| 270 | - /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 271 | - EditCarParkObj.setCarParkRadius(''); | |
| 272 | - /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 273 | - EditCarParkObj.setCarParkBparkPoint(edit_bPloygonGrid); | |
| 274 | - $.get('edit.html', function(m){ | |
| 275 | - $(pjaxContainer).append(m); | |
| 276 | - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 277 | - }); | |
| 278 | - }); | |
| 279 | - } | |
| 280 | - }, | |
| 281 | - clearMarkAndOverlays : function() { | |
| 282 | - // 清楚地图覆盖物 | |
| 283 | - mapValue.clearOverlays(); | |
| 284 | - } | |
| 285 | - } | |
| 286 | - return Bmap; | |
| 1 | +/** | |
| 2 | + * 百度地图 | |
| 3 | + * | |
| 4 | + */ | |
| 5 | + | |
| 6 | +var CarParkPWorldsBMap = function () { | |
| 7 | + | |
| 8 | + var mapValue='',drawingManager='',marker='',circle='',polygon=''; | |
| 9 | + | |
| 10 | + var Bmap = { | |
| 11 | + init : function() { | |
| 12 | + // 设置中心点, | |
| 13 | + var CENTER_POINT = {lng: 103.52514, lat: 30.589808}; | |
| 14 | + // 百度API Key | |
| 15 | + var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; | |
| 16 | + // 初始化百度地图 | |
| 17 | + mapValue = new BMap.Map("carParkbmap_basic"); | |
| 18 | + //中心点和缩放级别 | |
| 19 | + mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); | |
| 20 | + //启用地图拖拽事件,默认启用(可不写) | |
| 21 | + mapValue.enableDragging(); | |
| 22 | + //启用地图滚轮放大缩小 | |
| 23 | + mapValue.enableScrollWheelZoom(); | |
| 24 | + //禁用鼠标双击放大 | |
| 25 | + mapValue.disableDoubleClickZoom(); | |
| 26 | + //启用键盘上下左右键移动地图 | |
| 27 | + mapValue.enableKeyboard(); | |
| 28 | + var styleOptions = { | |
| 29 | + //边线颜色。 | |
| 30 | + strokeColor : "blue", | |
| 31 | + //填充颜色。当参数为空时,圆形将没有填充效果。 | |
| 32 | + fillColor : "blue", | |
| 33 | + //边线的宽度,以像素为单位。 | |
| 34 | + strokeWeight : 3, | |
| 35 | + //边线透明度,取值范围0 - 1。 | |
| 36 | + strokeOpacity : 0.8, | |
| 37 | + //填充的透明度,取值范围0 - 1。 | |
| 38 | + fillOpacity : 0.6, | |
| 39 | + //边线的样式,solid或dashed。 | |
| 40 | + strokeStyle : 'solid' | |
| 41 | + }; | |
| 42 | + // 创建鼠标绘制管理类 | |
| 43 | + drawingManager = new BMapLib.DrawingManager(mapValue, { | |
| 44 | + //是否开启绘制模式 | |
| 45 | + isOpen : false, | |
| 46 | + //是否显示工具栏 | |
| 47 | + enableDrawingTool : false, | |
| 48 | + drawingToolOptions : { | |
| 49 | + //位置 | |
| 50 | + anchor : BMAP_ANCHOR_TOP_RIGHT, | |
| 51 | + //偏离值 | |
| 52 | + offset : new BMap.Size(5, 5), | |
| 53 | + //工具栏缩放比例 | |
| 54 | + scale : 0.8 | |
| 55 | + }, | |
| 56 | + //线的样式 | |
| 57 | + polygonOptions : styleOptions | |
| 58 | + }); | |
| 59 | + // 添加绘画完成事件 | |
| 60 | + drawingManager.addEventListener('polygoncomplete', function(e) { | |
| 61 | + drawingManager.close(); | |
| 62 | + if (e.getPath().length <= 2) { | |
| 63 | + // 弹出提示消息 | |
| 64 | + layer.msg('坐标点不能小于等于两个...'); | |
| 65 | + // 清除地图覆盖物 | |
| 66 | + Bmap.clearMarkAndOverlays(); | |
| 67 | + // 加载该线路下所有站点位置添加到地图上 | |
| 68 | + return false; | |
| 69 | + }else { | |
| 70 | + var pointE = e; | |
| 71 | + // 多变行质心点 | |
| 72 | + var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat; | |
| 73 | + var addPolyGonLen_ = pointE.getPath().length; | |
| 74 | + for(var k =0;k<addPolyGonLen_;k++) { | |
| 75 | + if(k==0) { | |
| 76 | + bPloygonGrid = pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 77 | + }else { | |
| 78 | + bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[k].lng + ' ' + pointE.getPath()[k].lat; | |
| 79 | + } | |
| 80 | + | |
| 81 | + } | |
| 82 | + bPloygonGrid = bPloygonGrid + ',' + pointE.getPath()[0].lng + ' ' + pointE.getPath()[0].lat; | |
| 83 | + /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 84 | + EditCarParkObj.setCarParkBcenterPoint(addSttationPoints_); | |
| 85 | + /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 86 | + EditCarParkObj.setCarParkShapesType('d'); | |
| 87 | + /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 88 | + EditCarParkObj.setCarParkRadius(''); | |
| 89 | + /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 90 | + EditCarParkObj.setCarParkBparkPoint(bPloygonGrid); | |
| 91 | + $.get('edit.html', function(m){ | |
| 92 | + $(pjaxContainer).append(m); | |
| 93 | + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 94 | + }); | |
| 95 | + } | |
| 96 | + }); | |
| 97 | + return mapValue; | |
| 98 | + }, | |
| 99 | + openDrawingManager : function() { | |
| 100 | + // 清楚地图覆盖物 | |
| 101 | + // mapValue.clearOverlays(); | |
| 102 | + // 打开鼠标绘画工具 | |
| 103 | + drawingManager.open(); | |
| 104 | + // 设置属性 | |
| 105 | + drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON); | |
| 106 | + }, | |
| 107 | + drawingManagerClose : function() { | |
| 108 | + drawingManager.close(); | |
| 109 | + }, | |
| 110 | + localSearchFromAdreesToPoint: function(Address) { | |
| 111 | + // 创建一个搜索类实例 | |
| 112 | + var localSearch = new BMap.LocalSearch(mapValue); | |
| 113 | + // 检索完成后的回调函数。 | |
| 114 | + localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 115 | + var resultPoints = ''; | |
| 116 | + if(searchResult) { | |
| 117 | + // 返回索引指定的结果。索引0表示第1条结果 | |
| 118 | + var poi = searchResult.getPoi(0); | |
| 119 | + if(poi) { | |
| 120 | + //获取经度和纬度 | |
| 121 | + var Points = poi.point.lng + ' ' + poi.point.lat; | |
| 122 | + var BJwpointsArray = Points.split(' '); | |
| 123 | + var stationNameChangePoint = new BMap.Point(BJwpointsArray[0], BJwpointsArray[1]); | |
| 124 | + var marker_stargt2 = new BMap.Marker(stationNameChangePoint); | |
| 125 | + var PanOptions ={noAnimation :true}; | |
| 126 | + mapValue.panTo(stationNameChangePoint,PanOptions); | |
| 127 | + mapValue.panBy(0,-200); | |
| 128 | + // 将标注添加到地图中 | |
| 129 | + mapValue.addOverlay(marker_stargt2); | |
| 130 | + //跳动的动画 | |
| 131 | + marker_stargt2.setAnimation(BMAP_ANIMATION_BOUNCE); | |
| 132 | + } | |
| 133 | + } | |
| 134 | + }); | |
| 135 | + // 根据检索词发起检索。 | |
| 136 | + localSearch.search(Address); | |
| 137 | + }, | |
| 138 | + /** 画圆 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ | |
| 139 | + pointsCircle : function(r,point,htm,opts) { | |
| 140 | + //创建圆 | |
| 141 | + circle = new BMap.Circle(point,r[0].carParkRadius,{strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5}); | |
| 142 | + // 允许覆盖物在map.clearOverlays方法中被清除 | |
| 143 | + circle.enableMassClear(); | |
| 144 | + // 百度地图添加覆盖物圆 | |
| 145 | + mapValue.addOverlay(circle); | |
| 146 | + // 创建信息窗口 | |
| 147 | + infoWindow = new BMap.InfoWindow(htm, opts); | |
| 148 | + // 自定义标注物图片 | |
| 149 | + var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20)); | |
| 150 | + // 创建点 | |
| 151 | + marker = new BMap.Marker(point,{icon : icon_target}); | |
| 152 | + // 把标注添物加到地图上 | |
| 153 | + mapValue.addOverlay(marker); | |
| 154 | + setTimeout(function(){ | |
| 155 | + //开启信息窗口 | |
| 156 | + marker.openInfoWindow(infoWindow,point); | |
| 157 | + },100); | |
| 158 | + // 是否在平移过程中禁止动画。(自1.2新增) | |
| 159 | + var PanOptions_ ={noAnimation :true}; | |
| 160 | + // 将地图的中心点更改为给定的点。 | |
| 161 | + mapValue.panTo(point,PanOptions_); | |
| 162 | + // 添加标志物监听事件 | |
| 163 | + marker.addEventListener("click",function() { | |
| 164 | + //开启信息窗口 | |
| 165 | + marker.openInfoWindow(infoWindow,point); | |
| 166 | + }); | |
| 167 | + }, | |
| 168 | + | |
| 169 | + /** 画多边形 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ | |
| 170 | + pointsPolygon : function(r,pointPolygon,htm,opts_polygon) { | |
| 171 | + // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) | |
| 172 | + mapValue.setZoom(17); | |
| 173 | + // 获取多边形坐标字符串 | |
| 174 | + var stationBPolygonGrid = r[0].carParkBparkPoint; | |
| 175 | + // 截取多边形坐标字符串 | |
| 176 | + var stationBPolygonGridStr = stationBPolygonGrid.substring(9,stationBPolygonGrid.length-2); | |
| 177 | + // 按逗号切割 | |
| 178 | + var pointPolygonArray = stationBPolygonGridStr.split(','); | |
| 179 | + // 多边形坐标集合 | |
| 180 | + var polygonP = []; | |
| 181 | + for(var v = 0;v<pointPolygonArray.length;v++) { | |
| 182 | + polygonP.push(new BMap.Point(pointPolygonArray[v].split(" ")[0],pointPolygonArray[v].split(" ")[1])); | |
| 183 | + } | |
| 184 | + // 画多边形 | |
| 185 | + polygon = new BMap.Polygon(polygonP, { | |
| 186 | + // 线条显色 | |
| 187 | + strokeColor : "blue", | |
| 188 | + // 边线的宽度,以像素为单位。 | |
| 189 | + strokeWeight : 2, | |
| 190 | + // 边线透明度,取值范围0 - 1。 | |
| 191 | + strokeOpacity : 0.5 | |
| 192 | + }); | |
| 193 | + // 增加地图覆盖物多边形 | |
| 194 | + mapValue.addOverlay(polygon); | |
| 195 | + // 创建信息窗口 | |
| 196 | + infoWindow = new BMap.InfoWindow(htm, opts_polygon); | |
| 197 | + // 自定义标注物图片 | |
| 198 | + var icon_target = new BMap.Icon('/pages/base/stationroute/css/img/cz.png',new BMap.Size(20, 20)); | |
| 199 | + // 创建点 | |
| 200 | + marker = new BMap.Marker(pointPolygon,{icon : icon_target}); | |
| 201 | + // 把标注添物加到地图上 | |
| 202 | + mapValue.addOverlay(marker); | |
| 203 | + // 是否在平移过程中禁止动画。(自1.2新增) | |
| 204 | + var PanOptions_ ={noAnimation :true}; | |
| 205 | + // 将地图的中心点更改为给定的点。 | |
| 206 | + mapValue.panTo(pointPolygon,PanOptions_); | |
| 207 | + // 将地图在水平位置上移动x像素,垂直位置上移动y像素。 | |
| 208 | + mapValue.panBy(10,-250,PanOptions_); | |
| 209 | + //开启信息窗口 | |
| 210 | + marker.openInfoWindow(infoWindow,pointPolygon); | |
| 211 | + }, | |
| 212 | + | |
| 213 | + // 编辑图形 | |
| 214 | + editShapes : function(stationShapesTypeV,mindex) { | |
| 215 | + // 关闭信息窗口 | |
| 216 | + marker.closeInfoWindow(); | |
| 217 | + // 清除marker | |
| 218 | + mapValue.removeOverlay(marker); | |
| 219 | + // 编辑圆 | |
| 220 | + if(stationShapesTypeV =='r') { | |
| 221 | + // 开启编辑功能 | |
| 222 | + circle.enableEditing(); | |
| 223 | + // 编辑圆监听事件 | |
| 224 | + circle.addEventListener('dblclick',function() { | |
| 225 | + // 关闭提示弹出层 | |
| 226 | + layer.close(mindex); | |
| 227 | + // 返回圆形的半径,单位为米。 | |
| 228 | + var newRadius = circle.getRadius(); | |
| 229 | + // 返回圆形的中心点坐标。 | |
| 230 | + var newCenter = circle.getCenter().lng + ' ' + circle.getCenter().lat; | |
| 231 | + var centre_New = [{potion:{lng:circle.getCenter().lng,lat:circle.getCenter().lat}}]; | |
| 232 | + /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 233 | + EditCarParkObj.setCarParkBcenterPoint(newCenter); | |
| 234 | + /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 235 | + EditCarParkObj.setCarParkShapesType('r'); | |
| 236 | + /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 237 | + EditCarParkObj.setCarParkRadius(Math.round(newRadius)); | |
| 238 | + /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 239 | + EditCarParkObj.setCarParkBparkPoint(''); | |
| 240 | + // 加载编辑页面 | |
| 241 | + $.get('edit.html', function(m){ | |
| 242 | + $(pjaxContainer).append(m); | |
| 243 | + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 244 | + }); | |
| 245 | + }); | |
| 246 | + // 编辑多变行 | |
| 247 | + }else if(stationShapesTypeV =='d') { | |
| 248 | + // 开启编辑功能(自 1.1 新增) | |
| 249 | + polygon.enableEditing(); | |
| 250 | + // 添加多变行编辑事件 | |
| 251 | + polygon.addEventListener('dblclick',function(e) { | |
| 252 | + // 获取编辑的多边形对象 | |
| 253 | + var edit_pointE = polygon; | |
| 254 | + var edit_bPloygonGrid = ""; | |
| 255 | + var editPolyGonLen_ = edit_pointE.getPath().length; | |
| 256 | + for(var k =0;k<editPolyGonLen_;k++) { | |
| 257 | + if(k==0) { | |
| 258 | + edit_bPloygonGrid = edit_pointE.getPath()[k].lng + ' ' + edit_pointE.getPath()[k].lat; | |
| 259 | + }else { | |
| 260 | + edit_bPloygonGrid = edit_bPloygonGrid + ',' + edit_pointE.getPath()[k].lng + ' ' + edit_pointE.getPath()[k].lat; | |
| 261 | + } | |
| 262 | + } | |
| 263 | + edit_bPloygonGrid = edit_bPloygonGrid + ',' + edit_pointE.getPath()[0].lng + ' ' + edit_pointE.getPath()[0].lat; | |
| 264 | + // 多边形中心点 | |
| 265 | + var centre_points = edit_pointE.getBounds().getCenter().lng + ' ' + edit_pointE.getBounds().getCenter().lat; | |
| 266 | + /** 设置修改停车场集合对象图形质心点属性 @param:<addSttationPoints_:多边形质心点> */ | |
| 267 | + EditCarParkObj.setCarParkBcenterPoint(centre_points); | |
| 268 | + /** 设置修改停车场集合对象图形类型属性 @param:<shapeType:图形类型> */ | |
| 269 | + EditCarParkObj.setCarParkShapesType('d'); | |
| 270 | + /** 设置修改停车场集合对象圆形半径属性 @param:<radius:圆形半径> */ | |
| 271 | + EditCarParkObj.setCarParkRadius(''); | |
| 272 | + /** 设置修改停车场集合对象名称 @param:<bParkPoint:多边形图形坐标集合> */ | |
| 273 | + EditCarParkObj.setCarParkBparkPoint(edit_bPloygonGrid); | |
| 274 | + $.get('edit.html', function(m){ | |
| 275 | + $(pjaxContainer).append(m); | |
| 276 | + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); | |
| 277 | + }); | |
| 278 | + }); | |
| 279 | + } | |
| 280 | + }, | |
| 281 | + clearMarkAndOverlays : function() { | |
| 282 | + // 清楚地图覆盖物 | |
| 283 | + mapValue.clearOverlays(); | |
| 284 | + } | |
| 285 | + } | |
| 286 | + return Bmap; | |
| 287 | 287 | }(); |
| 288 | 288 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/base/section/js/add-vmap-world.js
| ... | ... | @@ -2,7 +2,7 @@ var SectionVmapWorlds = function() { |
| 2 | 2 | var mapB = '', drawingManager = ''; |
| 3 | 3 | var Bmap = { |
| 4 | 4 | init : function() { |
| 5 | - var CENTER_POINT = {lng : 121.528733,lat : 31.237425};// 设置中心点. | |
| 5 | + var CENTER_POINT = {lng: 103.52514, lat: 30.589808};// 设置中心点. | |
| 6 | 6 | var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';// 百度API Key |
| 7 | 7 | mapB = new BMap.Map("sectionBmap_basic");// 初始化百度地图 |
| 8 | 8 | mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);//中心点和缩放级别 | ... | ... |
src/main/resources/static/pages/base/station/add.html
| ... | ... | @@ -122,6 +122,17 @@ |
| 122 | 122 | </div> |
| 123 | 123 | </div> |
| 124 | 124 | </div> |
| 125 | + <!-- 站点名称 --> | |
| 126 | + <div class="form-body"> | |
| 127 | + <div class="form-group"> | |
| 128 | + <label class="control-label col-md-3"> | |
| 129 | + 经纬度(WGS84): | |
| 130 | + </label> | |
| 131 | + <div class="col-md-7"> | |
| 132 | + <input type="text" class="form-control" id="centerPointWgsWkt" name="centerPointWgsWkt" placeholder="经纬度以空格分隔" /> | |
| 133 | + </div> | |
| 134 | + </div> | |
| 135 | + </div> | |
| 125 | 136 | <!-- 行业编码 --> |
| 126 | 137 | <div class="form-body"> |
| 127 | 138 | <div class="form-group"> |
| ... | ... | @@ -207,8 +218,14 @@ |
| 207 | 218 | <div class="col-md-4"> |
| 208 | 219 | <p class="form-control-static" data-display="centerPointWkt"> </p> |
| 209 | 220 | </div> |
| 210 | - </div> | |
| 211 | - <h4 class="form-section"> 站点信息 </h4> | |
| 221 | + </div> | |
| 222 | + <div class="form-group"> | |
| 223 | + <label class="control-label col-md-3"> 经纬度(WGS84): </label> | |
| 224 | + <div class="col-md-4"> | |
| 225 | + <p class="form-control-static" data-display="centerPointWgsWkt"> </p> | |
| 226 | + </div> | |
| 227 | + </div> | |
| 228 | + <h4 class="form-section"> 站点信息 </h4> | |
| 212 | 229 | <div class="form-group"> |
| 213 | 230 | <label class="control-label col-md-3">站点名称 :</label> |
| 214 | 231 | <div class="col-md-4"> | ... | ... |
src/main/resources/static/pages/base/station/edit.html
| ... | ... | @@ -28,6 +28,17 @@ |
| 28 | 28 | </div> |
| 29 | 29 | </div> |
| 30 | 30 | </div> |
| 31 | + <!-- 经纬度 --> | |
| 32 | + <div class="form-body"> | |
| 33 | + <div class="form-group"> | |
| 34 | + <label class="control-label col-md-3"> | |
| 35 | + 经纬度(WGS84): | |
| 36 | + </label> | |
| 37 | + <div class="col-md-7"> | |
| 38 | + <input type="text" class="form-control" name="centerPointWgsWkt" placeholder="经纬度以空格分隔"/> | |
| 39 | + </div> | |
| 40 | + </div> | |
| 41 | + </div> | |
| 31 | 42 | <!-- 站点编码 --> |
| 32 | 43 | <div class="form-body"> |
| 33 | 44 | <div class="form-group"> |
| ... | ... | @@ -179,6 +190,11 @@ $('#edit_station_modal').on('modal.show', function(e, map,fun,stat){ |
| 179 | 190 | submitHandler : function(f) { |
| 180 | 191 | error.hide(); |
| 181 | 192 | var params = form.serializeJSON(); |
| 193 | + var centerPointWgsWkt = params.centerPointWgsWkt; | |
| 194 | + if (centerPointWgsWkt && centerPointWgsWkt.indexOf('POINT') < 0) { | |
| 195 | + alert(''); | |
| 196 | + params.centerPointWgsWkt = 'POINT(' + centerPointWgsWkt + ')'; | |
| 197 | + } | |
| 182 | 198 | fun.stationUpdate(params,function(result) { |
| 183 | 199 | if (result.status == 'SUCCESS') { |
| 184 | 200 | // 弹出添加成功提示消息 | ... | ... |
src/main/resources/static/pages/base/station/js/add-form-wizard.js
| ... | ... | @@ -82,6 +82,7 @@ var FormWizard = function() { |
| 82 | 82 | // 表单序列化 |
| 83 | 83 | var params = form.serializeJSON(); |
| 84 | 84 | params.centerPointWkt = 'POINT(' + params.centerPointWkt + ')'; |
| 85 | + params.centerPointWgsWkt = 'POINT(' + params.centerPointWgsWkt + ')'; | |
| 85 | 86 | //保存站点 |
| 86 | 87 | PublicFunctions.stationSave(params,function(data) { |
| 87 | 88 | if(data.status=='SUCCESS') { | ... | ... |
src/main/resources/static/pages/base/station/js/station-positions-map.js
| ... | ... | @@ -10,7 +10,7 @@ var StationPositionsWorldsBMap = function () { |
| 10 | 10 | // 关闭左侧栏 |
| 11 | 11 | if (!$('body').hasClass('page-sidebar-closed')) {$('.menu-toggler.sidebar-toggler').click();} |
| 12 | 12 | // 设置中心点, |
| 13 | - var CENTER_POINT = {lng : 121.528733,lat : 31.237425}; | |
| 13 | + var CENTER_POINT = {lng: 103.52514, lat: 30.589808}; | |
| 14 | 14 | // 初始化百度地图 |
| 15 | 15 | mapBValue = new BMap.Map("positionBmap_basic"); |
| 16 | 16 | //中心点和缩放级别 |
| ... | ... | @@ -50,7 +50,7 @@ var StationPositionsWorldsBMap = function () { |
| 50 | 50 | }, |
| 51 | 51 | position : function(station, html, opts) { |
| 52 | 52 | // 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) |
| 53 | - mapBValue.setZoom(17); | |
| 53 | + mapBValue.centerAndZoom(station.point, 17); | |
| 54 | 54 | // 创建信息窗口 |
| 55 | 55 | infoWindow = new BMap.InfoWindow(html, opts); |
| 56 | 56 | // 创建点 | ... | ... |