Commit d4bc0d488b3a9510f10e8f15facab2418e9045f7
1 parent
642984d4
1
Showing
1 changed file
with
66 additions
and
93 deletions
src/main/resources/static/pages/base/stationroute/addstationstemplate.html
| ... | ... | @@ -85,30 +85,6 @@ |
| 85 | 85 | </div> |
| 86 | 86 | <script type="text/javascript"> |
| 87 | 87 | |
| 88 | - // xml方式上传是,处理转成txt格式的方法 | |
| 89 | - var getXmlSection = function (xml) { | |
| 90 | - // var xml = $("#xmlText").val(); | |
| 91 | - var stationPointList = getXmlNode(xml); | |
| 92 | - var sListSize = stationPointList.length; | |
| 93 | - var sectionPointListStr = stationPointList[stationPointList.length - 1]; | |
| 94 | - var sectionPointList = sectionPointListStr.split(" "); | |
| 95 | - | |
| 96 | - // var sectionStr = ""; | |
| 97 | - var sections = []; | |
| 98 | - var mapping = nearestSectionPoint(stationPointList, sectionPointList); | |
| 99 | - for (var i = 0; i < sectionPointList.length; i++) { | |
| 100 | - var pointStr = sectionPointList[i], | |
| 101 | - point = pointStr.split(","); | |
| 102 | - | |
| 103 | - if (mapping[pointStr]) { | |
| 104 | - sections.push(point[0] + " " + point[1] + " " + point[2] + " Stop"); | |
| 105 | - } else { | |
| 106 | - sections.push(point[0] + " " + point[1] + " " + point[2]); | |
| 107 | - } | |
| 108 | - } | |
| 109 | - return sections; | |
| 110 | - }; | |
| 111 | - | |
| 112 | 88 | $('#add_station_template_mobal').on('AddStationTempMobal.show', function(e,map,ajaxd,dir,line,fun){ |
| 113 | 89 | |
| 114 | 90 | |
| ... | ... | @@ -178,45 +154,34 @@ $('#add_station_template_mobal').on('AddStationTempMobal.show', function(e,map,a |
| 178 | 154 | }, |
| 179 | 155 | |
| 180 | 156 | submitHandler : function(f) { |
| 181 | - // 隐藏弹出层 | |
| 182 | - $('#edit_route_mobal').modal('hide'); | |
| 183 | - // 原坐标类型 | |
| 184 | - var baseRes = "WGS84"; | |
| 157 | + debugger; | |
| 158 | + // 隐藏手动规划弹出层 | |
| 159 | + $('#add_station_template_mobal').modal('hide'); | |
| 160 | + var directionData = dir; | |
| 185 | 161 | // 定义线路名称 |
| 186 | 162 | var lineNameV = $('.portlet-title .caption').text(); |
| 187 | 163 | var dirStr = ''; |
| 188 | - // 路线方向 | |
| 189 | - var directionData = dir; | |
| 190 | - | |
| 191 | - var type = $("input[name='typeCheck']:checked").val(); | |
| 192 | - | |
| 164 | + // 上行 | |
| 165 | + if(directionData==0){ | |
| 166 | + dirStr = '上行路段'; | |
| 167 | + // 隐藏上行规划 | |
| 168 | + $('#upToolsMobal').hide(); | |
| 169 | + // 下行 | |
| 170 | + }else if(directionData==1){ | |
| 171 | + dirStr = '下行路段'; | |
| 172 | + // 隐藏上行规划 | |
| 173 | + $('#downToolsMobal').hide(); | |
| 174 | + } | |
| 193 | 175 | // 弹出正在加载层 |
| 194 | - var i = layer.load(2); | |
| 176 | + var i = layer.load(0,{offset:['200px', '280px']}); | |
| 195 | 177 | // 表单序列化 |
| 196 | 178 | var paramsForm = form.serializeJSON(); |
| 197 | - var array = []; | |
| 198 | - if(type == 1){ | |
| 199 | - array = getXmlSection(paramsForm.points); | |
| 200 | - } else { | |
| 201 | - // 切割坐标点 | |
| 202 | - array = paramsForm.points.split('\r\n'); | |
| 203 | - } | |
| 204 | - // 把坐标点转换为站点或路段 | |
| 179 | + var baseResValue = paramsForm.baseRes; | |
| 180 | + // 站点名称字符串切割 | |
| 181 | + var array = paramsForm.stations.split('\r\n'); | |
| 205 | 182 | var arrayFormat = inputStationValueFormat(array); |
| 206 | - var stationList = arrayFormat.stationList; | |
| 207 | - var sectionListTemp = arrayFormat.sectionList; | |
| 208 | - var sectionList = []; | |
| 209 | - // 隔30个取一个点(相当于30s) | |
| 210 | - var typeNum = type == 0 ? 30:1; | |
| 211 | - for(var i = 0; i*typeNum < sectionListTemp.length; i++) { | |
| 212 | - sectionList[i] = sectionListTemp[i*typeNum]; | |
| 213 | - } | |
| 214 | - sectionList[sectionList.length] = sectionListTemp[sectionListTemp.length-1]; | |
| 215 | - | |
| 216 | - var sectionListFinal = []; | |
| 217 | - sectionListFinal.push({sectionName : lineNameV, points : sectionList}); | |
| 218 | 183 | // 根据站点名称获取百度坐标 |
| 219 | - map.stationsPointsToLibraryPoint(stationList,function(resultJson) { | |
| 184 | + map.stationsNameToPoints(arrayFormat,function(resultJson) { | |
| 220 | 185 | // 根据坐标点获取两点之间的时间与距离 |
| 221 | 186 | map.getDistanceAndDuration(resultJson,function(stationdataList) { |
| 222 | 187 | // 设置第一个站的距离 |
| ... | ... | @@ -225,15 +190,14 @@ $('#add_station_template_mobal').on('AddStationTempMobal.show', function(e,map,a |
| 225 | 190 | stationdataList[0].duration = ''; |
| 226 | 191 | // 定义站点信息JSON字符串 |
| 227 | 192 | var stationJSON = JSON.stringify(stationdataList); |
| 193 | + var addLine = line.getLineObj(); | |
| 228 | 194 | // 参数集合 |
| 229 | 195 | var params = {}; |
| 230 | - params.baseRes = baseRes; | |
| 231 | - // 是否添加该站点 | |
| 232 | - | |
| 196 | + params.baseRes = baseResValue; | |
| 233 | 197 | // 站点信息JSON字符串 |
| 234 | 198 | params.stationJSON = stationJSON; |
| 235 | 199 | // 线路ID |
| 236 | - params.lineId = line.id; | |
| 200 | + params.lineId = addLine.id; | |
| 237 | 201 | // 方向 |
| 238 | 202 | params.directions = directionData; |
| 239 | 203 | // 原始坐标类型 |
| ... | ... | @@ -248,55 +212,64 @@ $('#add_station_template_mobal').on('AddStationTempMobal.show', function(e,map,a |
| 248 | 212 | params.destroy = '0'; |
| 249 | 213 | // versions:版本号 |
| 250 | 214 | params.versions = '1'; |
| 251 | - // 定义路段信息字符串 | |
| 252 | - var sectionJSON = JSON.stringify(sectionListFinal); | |
| 253 | - // 路段信息JSON字符串 | |
| 254 | - params.sectionJSON = sectionJSON; | |
| 255 | - addSave(params,line.id,directionData); | |
| 256 | - }); | |
| 215 | + map.lineInfoPanl(lineNameV,directionData,function(BusLine){ | |
| 216 | + // 如果线路信息不为空 | |
| 217 | + if(BusLine && Polygon){ | |
| 218 | + // 获取公交线几何对象, 仅当结果自动添加到地图上时有效 | |
| 219 | + var Polygon = BusLine.getPolyline(); | |
| 220 | + // 返回多边型的点数组(自1.2新增) | |
| 221 | + var polyGonArray = Polygon.getPath(); | |
| 222 | + var jsonArray = [{sectionName:lineNameV+dirStr,points:polyGonArray}]; | |
| 223 | + // 定义路段信息字符串 | |
| 224 | + var sectionJSON = JSON.stringify(jsonArray); | |
| 225 | + // 路段信息JSON字符串 | |
| 226 | + // if(sectionJSON != null && sectionJSON != "") { | |
| 227 | + params.sectionJSON = sectionJSON; | |
| 228 | + addSave(params,addLine.id,directionData); | |
| 229 | + /* } else { | |
| 230 | + layer.msg('百度地图上没有此线路的相应路段,请更换方式规划!!!'); | |
| 231 | + } */ | |
| 232 | + }else { | |
| 233 | + // 根据坐标点获取两点之间的折线路段 | |
| 234 | + map.getSectionListPlonly(stationdataList,function(sectiondata) { | |
| 235 | + // 定义路段信息字符串 | |
| 236 | + var sectionJSON = JSON.stringify(sectiondata); | |
| 237 | + // 路段信息JSON字符串 | |
| 238 | + //if(sectionJSON != null && sectionJSON != "") { | |
| 239 | + params.sectionJSON = sectionJSON; | |
| 240 | + addSave(params,addLine.id,directionData); | |
| 241 | + /* } else { | |
| 242 | + layer.msg('无法生成路段,请重试!'); | |
| 243 | + return; | |
| 244 | + } */ | |
| 245 | + }); | |
| 246 | + } | |
| 247 | + }); | |
| 248 | + | |
| 249 | + }); | |
| 257 | 250 | |
| 258 | - }); | |
| 259 | - }, | |
| 251 | + }); | |
| 252 | + | |
| 253 | + } | |
| 260 | 254 | |
| 261 | - }); | |
| 255 | + }); | |
| 262 | 256 | |
| 263 | 257 | function inputStationValueFormat(paramsStationsArray) { |
| 264 | 258 | var stationList = []; |
| 265 | - var sectionList = []; | |
| 266 | - var routeList = {"stationList":stationList, "sectionList":sectionList}; | |
| 267 | 259 | var len = paramsStationsArray.length; |
| 268 | - // 处理相同站点判断值 | |
| 269 | - var isPush = true; | |
| 270 | 260 | for(var k =0;k<len;k++) { |
| 271 | 261 | if(paramsStationsArray[k]=="") |
| 272 | 262 | continue; |
| 273 | 263 | var tempStr = paramsStationsArray[k].split('\t'); |
| 274 | - var tempPoint = transGpsLoc(tempStr[0],tempStr[1]); | |
| 275 | - var point = {lng:tempPoint.lng, lat:tempPoint.lat}; | |
| 276 | - if(tempStr.length < 4){ | |
| 277 | - sectionList[k] = point; | |
| 278 | - isPush = true; | |
| 264 | + if(tempStr.length<2){ | |
| 265 | + stationList.push({name:paramsStationsArray[k]+"公交车站",wgs:{x:'',y:''}}); | |
| 279 | 266 | }else { |
| 280 | - if(isPush) { | |
| 281 | - sectionList[k] = point; | |
| 282 | - stationList.push({name:tempStr[3], potion:{lng:tempPoint.lng, lat:tempPoint.lat} , wgs:{x:tempStr[0], y:tempStr[1]}}); | |
| 283 | - } else { | |
| 284 | - sectionList[k] = point; | |
| 285 | - } | |
| 286 | - isPush = false; | |
| 267 | + stationList.push({name:tempStr[0]+"公交车站",wgs:{x:tempStr[1], y:tempStr[2]}}); | |
| 287 | 268 | } |
| 288 | 269 | } |
| 289 | - for(var i = 0 ;i<sectionList.length;i++) { | |
| 290 | - if(sectionList[i] == "" || isNaN(sectionList[i].lng) || typeof(sectionList[i]) == "undefined" || sectionList[i] == null) { | |
| 291 | - sectionList.splice(i,1);//删除数组中下表i-i+1之间的值 | |
| 292 | - i= i-1; | |
| 293 | - } | |
| 294 | - | |
| 295 | - } | |
| 296 | - return routeList; | |
| 270 | + return stationList; | |
| 297 | 271 | } |
| 298 | 272 | |
| 299 | - | |
| 300 | 273 | function addSave(params,lineid,directionData) { |
| 301 | 274 | |
| 302 | 275 | ... | ... |