﻿var transferTimes=0;var busSStopID=-1;var busEStopID=-1;var busSStopN="";var busEStopN="";var SToStopL=0;var EToStopL=0;var StartSNO="";var EndSNO="";var CouldGetSolution=false;var SResultEmpty=false;var EResultEmpty=false;var bFromLineWin=false;var bFromStopWin=false;var m_busSolution=null;
function pauduanBus(){m_StartNames=new Array();m_StartPoints=new Array();m_EndPoints=new Array();m_EndNames=new Array();var startStop=trim($("txtStart").value.toString());var endStop=trim($("txtEnd").value.toString());if(startStop==""||typeof(startStop)!="string"){alert("请输入起点！");return;}if(endStop==""||typeof(endStop)!="string"){alert("请输入终点！");return;}bPointSelect=false;OProgressBar("搜索");if(startStop=="点选起点"&&endStop=="点选终点"){GetBusSolutionByPoints();var innerHtml;innerHtml="<div><img alt='起点' title='起点' src='images/qidian.gif' style='cursor:pointer' /><div>";mapControl.CustomLayer.InsertMark(StartID,m_StartPoint.x,m_StartPoint.y,10,40,innerHtml);innerHtml="<div><img alt='终点' title='终点' src='images/zhongdian.gif' style='cursor:pointer' /><div>";mapControl.CustomLayer.InsertMark(EndID,m_EndPoint.x,m_EndPoint.y,10,40,innerHtml);bPointSelect=true;return;}else if(startStop!="点选起点"&&endStop!="点选终点"){m_StartPoint=null;m_EndPoint=null;starSelect="";endSelect="";StartPointQueryB(startStop);EndPointQueryB(endStop);return;}else if(startStop=="点选起点"||endStop!="点选终点"){var innerHtml;innerHtml="<div><img alt='起点' title='起点' src='images/qidian.gif' style='cursor:pointer' /><div>";mapControl.CustomLayer.InsertMark(StartID,m_StartPoint.x,m_StartPoint.y,10,40,innerHtml);m_EndPoint=null;starSelect="";endSelect="";StartStopSSelect();EndPointQueryB(endStop);return;}else if(startStop!="点选起点"||endStop=="点选终点"){var innerHtml;innerHtml="<div><img alt='终点' title='终点' src='images/zhongdian.gif' style='cursor:pointer' /><div>";mapControl.CustomLayer.InsertMark(EndID,m_EndPoint.x,m_EndPoint.y,10,40,innerHtml);m_StartPoint=null;starSelect="";endSelect="";StartPointQueryB(startStop);EndStopSSelect();return;}}
function AddOption(sel,inText,val){var option1=document.createElement("option");$(sel).options.add(option1);option1.innerText=inText;option1.value=val;}
function StartStopSSelect(){$("StartSelect").options.length=0;AddOption("StartSelect","点选起点","点选起点");}
function EndStopSSelect(){$("EndSelect").options.length=0;AddOption("EndSelect","点选终点","点选终点");}
function StartPointQueryB(PlaceName){var queryParam=new SuperMap.IS.QueryParam();queryParam=GetPAQueryParam(PlaceName);mapControl.GetQueryManager().QueryBySql(queryParam,OnFindstartStopComplete,onQueryError);}
function EndPointQueryB(PlaceName){var queryParam=new SuperMap.IS.QueryParam();queryParam=GetPAQueryParam(PlaceName);mapControl.GetQueryManager().QueryByRect(mapControl.GetMapBounds(),queryParam,OnFindendStopComplete,onQueryError);}
function OnFindstartStopComplete(resultset){$("StartSelect").options.length=0;if(resultset.totalCount>0){AddToStartSelect(resultset);SResultEmpty=false;}else{AddOption("StartSelect","没有结果","没有结果");SResultEmpty=true;}SwitchRSWin(2);CProgressBar();}
function OnFindendStopComplete(resultset){$("EndSelect").options.length=0;if(resultset.totalCount>0){AddToEndSelect(resultset);EResultEmpty=false;}else{AddOption("EndSelect","没有结果","没有结果");EResultEmpty=true;}SwitchRSWin(2);CProgressBar();}
function AddToStartSelect(resultset){for(var i=0;i<resultset.recordsets.length;i++){for(var j=0;j<resultset.recordsets[i].records.length;j++){var n=resultset.recordsets[i].records[j].fieldValues[1];m_StartNames.push(n);m_StartPoints.push(resultset.recordsets[i].records[j].center);if(resultset.recordsets[i].layerName=="BusPoint@MAP_WEB"){AddOption("StartSelect",n+"(公交站点)",n);}else{AddOption("StartSelect",n,n);}}}}
function AddToEndSelect(resultset){for(var i=0;i<resultset.recordsets.length;i++){for(var j=0;j<resultset.recordsets[i].records.length;j++){var n=resultset.recordsets[i].records[j].fieldValues[1];m_EndNames.push(n);m_EndPoints.push(resultset.recordsets[i].records[j].center);if(resultset.recordsets[i].layerName=="BusPoint@MAP_WEB"){AddOption("EndSelect",n+"(公交站点)",n);}else{AddOption("EndSelect",n,n);}}}}
function PanToStartPointB(){if($("StartSelect").value!="点选起点"){var SelectItem=$("StartSelect").selectedIndex;var x=m_StartPoints[SelectItem].x;var y=m_StartPoints[SelectItem].y;m_StartPoint=m_StartPoints[SelectItem];m_StartName=m_StartNames[SelectItem];mapControl.ViewByPoint(x,y);var scriptstring="<img src='images/qidian.gif' style='cursor:pointer' />";scriptstring+='<div class="Point">'+m_StartNames[SelectItem]+'</div>';mapControl.CustomLayer.InsertMark(StartID,x,y,10,40,scriptstring,"",200);}}
function PanToEndPointB(){if($("EndSelect").value!="点选终点"){var SelectItem=$("EndSelect").selectedIndex;var x=m_EndPoints[SelectItem].x;var y=m_EndPoints[SelectItem].y;m_EndPoint=m_EndPoints[SelectItem];m_EndName=m_EndNames[SelectItem];mapControl.ViewByPoint(x,y);var scriptstring="<img src='images/zhongdian.gif' style='cursor:pointer' />";scriptstring+='<div class="Point">'+m_EndNames[SelectItem]+'</div>';mapControl.CustomLayer.InsertMark(EndID,x,y,10,40,scriptstring,"",200);}}
function GetBusSolutionByPoints(){if(m_StartPoint!=null&&m_EndPoint!=null){SetPanAction();var points=new Array();points.push(m_StartPoint);points.push(m_EndPoint);var bsp=new SuperMap.IS.BusSolutionParam();bsp.expected=50;bsp.most=true;bsp.transferTimes=1;bsp.orderMode=SuperMap.IS.BusSolutionOrderMode.byDistance;;mapControl.GetSpatialAnalystManager().GetBusSolutionByPoints(points,500,bsp,onGetBusSolutionComplete,onQueryError);}else{alert("请选择起点和终点！");}}
function NoStop(){var NoSE="";if(EndSNO=="起点或终点没有公车到达"){NoSE="起点或终点没有公车到达!";}if(StartSNO=="起点或终点没有公车到达"){NoSE="起点或终点没有公车到达!";}if(NoSE!=""){var str="";str+="<div style='position:absolute;left:10px;top:42px;'>"+NoSE+"</div>";if(bPointSelect==false){str+="<div style='position:absolute;left:100px;top:415px'><img src='images/btn_FH.gif' alt='返回' onclick='BackBus()' style='cursor:pointer;' /></div>";}return;}}
function onGetBusSolutionComplete(busSolution){ClearHighlight();if(!busSolution==null||!busSolution[0].returnRouting){var str="解决方案为空!";$("RsB").innerHTML=str;if(!bPointSelect){xianshi("BBus");}else{yunchang("BBus");}SwitchRSWin(3);}else{if(m_busSolution){m_busSolution=null;};m_busSolution=new Array();for(var i=0;i<busSolution.length;i++){m_busSolution[i]=new SuperMap.IS.BusSolution();m_busSolution[i].Copy(busSolution[i]);}var str="";var qidianv;var zhongdianv;if($("txtStart").value!="点选起点"){qidianv=$("StartSelect").value;}else{qidianv="点选起点";}if($("txtEnd").value!="点选终点"){zhongdianv=$("StartSelect").value;}else{zhongdianv="点选终点";}for(var k=0;k<busSolution.length;k++){if(busSolution[k].returnRouting==true&&busSolution[k].routings!=null){var indexL=1;var indexS=0;var indexR=0;for(var i=0;i<busSolution[k].routings.length;i++){if(indexS<10){if(busSolution[k].routings[i].busLines.length==1){if(indexL==1){indexS=k;indexR=i;}str+="<div  onmouseover=\"style.backgroundColor='#e3f4fb'\" onmouseout=\"style.backgroundColor='white'\"  style='cursor:pointer' onclick=\"ShowRouting(m_busSolution["+k+"].routings["+i+"]);\" >"+indexL+".&nbsp;&nbsp;";indexL+=1;for(var j=0;j<busSolution[k].routings[i].busLines.length;j++){var upStopID=busSolution[k].routings[i].upStops[j].smId;var lineID=busSolution[k].routings[i].busLines[j].smId;var downStopID=busSolution[k].routings[i].downStops[j].smId;if(j==0){str+="步行至<a style='color:blue;cursor:pointer;' onclick='ShowBusStop("+upStopID+");'>"+busSolution[k].routings[i].upStops[j].stopName+"</a>,";str+="乘<a style='color:blue;text-decoration:underline' >"+busSolution[k].routings[i].busLines[j].lineName+"<a>,";str+="至<a style='color:blue;cursor:pointer;' >"+busSolution[k].routings[i].downStops[j].stopName+"</a>下车.";}else{str+="换乘<a style='color:blue;text-decoration:underline' >"+busSolution[k].routings[i].busLines[j].lineName+"<a>,";str+="至<a style='color:blue;cursor:pointer;' >"+busSolution[k].routings[i].downStops[j].stopName+"</a>下车.";}}str+="</div> ";}}}}if(indexL==1){for(var r=0;r<busSolution[k].routings.length;r++){if(indexS<10){if(busSolution[k].routings[r].busLines.length==2){str+="<div onmouseover=\"style.backgroundColor='#e3f4fb'\" onmouseout=\"style.backgroundColor='white'\" style='cursor:pointer' onclick=\"ShowRouting(m_busSolution["+k+"].routings["+r+"]);\" >"+indexL+".&nbsp;&nbsp;";indexL+=1;for(var j=0;j<busSolution[k].routings[r].busLines.length;j++){var upStopID=busSolution[k].routings[r].upStops[j].smId;var lineID=busSolution[k].routings[r].busLines[j].smId;var downStopID=busSolution[k].routings[r].downStops[j].smId;if(j==0){str+="步行至<a style='color:blue;cursor:pointer;' onclick='ShowBusStop("+upStopID+");'>"+busSolution[k].routings[r].upStops[j].stopName+"</a>,";str+="乘<a style='color:blue;text-decoration:underline' >"+busSolution[k].routings[r].busLines[j].lineName+"<a>,";str+="至<a style='color:blue;cursor:pointer;' >"+busSolution[k].routings[r].downStops[j].stopName+"</a>下车.";}else{str+="换乘<a style='color:blue;text-decoration:underline' >"+busSolution[k].routings[r].busLines[j].lineName+"<a>,";str+="至<a style='color:blue;cursor:pointer;' >"+busSolution[k].routings[r].downStops[j].stopName+"</a>下车.";}}str+="</div> ";}}}}$("RsB").innerHTML=str;if(!bPointSelect){xianshi("BBus");}else{yunchang("BBus");}SwitchRSWin(3);ShowRouting(busSolution[indexS].routings[indexR]);}}CProgressBar();}
function ShowRouting(busRouting){ClearHighlight();if(!busRouting){return;}mapControl.ShowRouting(busRouting,onShowRoutingComplete,onQueryError,"");var mcs=new Array();if(busRouting.busLines.length>1){InsertPoint(busRouting.upStops[0].stopName,StartID,busRouting.upStops[0].Location.x,busRouting.upStops[0].Location.y,"qidian");InsertPoint(busRouting.upStops[1].stopName,"middleID",busRouting.upStops[1].Location.x,busRouting.upStops[1].Location.y,"SwitchStop");InsertPoint(busRouting.downStops[1].stopName,EndID,busRouting.downStops[1].Location.x,busRouting.downStops[1].Location.y,"zhongdian");mcs.push(busRouting.upStops[0].Location);mcs.push(busRouting.upStops[1].Location);mcs.push(busRouting.downStops[1].Location);}else{InsertPoint(busRouting.upStops[0].stopName,StartID,busRouting.upStops[0].Location.x,busRouting.upStops[0].Location.y,"qidian");InsertPoint(busRouting.downStops[0].stopName,EndID,busRouting.downStops[0].Location.x,busRouting.downStops[0].Location.y,"zhongdian");mcs.push(busRouting.upStops[0].Location);mcs.push(busRouting.downStops[0].Location);}mapControl.ViewByPoints(mcs);}
function InsertPoint(name,id,x,y,img){var tbid=img+"88";var scriptstring="<img border=0 src='images/"+img+".gif' style='cursor:pointer' />";scriptstring+='<div style="position:absolute;left:21px; z-index:1;">';scriptstring+='<table id="'+tbid+'" cellpadding="0" cellspacing="0"  style="width:145px;background-color: #FFFFCA;border: #000000 1px solid; font-size:13px;">';scriptstring+='<tr><td>'+name+'</td></tr>';scriptstring+='</table></div>';mapControl.CustomLayer.InsertMark(id,x,y,10,10,scriptstring,"",200);$(tbid).style.width=name.length*13+4.5+"px";}
function onShowRoutingComplete(viewbounds){}
function ClearStopLine(){mapControl.CustomLayer.ClearLines();for(var i=0;i<9;i++){if(("BusStartStop"+i)!=null){mapControl.CustomLayer.RemoveMark("BusStartStop"+i);mapControl.CustomLayer.RemoveMark("BusEndStop"+i);}}}
function stopKeyUp(){if(window.event.keyCode==13){FindBusStop();}}
function LineKeyUp(){if(window.event.keyCode==13){FindBusLine();}}
function RoadKeyUp(){if(window.event.keyCode==13){FindRoad();}}var BoolBackBusPL=false;
function FindBusStop(){var BusStopName=trim(document.getElementById("fuzzyBusStopName").value);if(BusStopName==""){alert("请输入站点名！");return;}if(!BusStopName){alert("请输入站点名！");return;}BoolBackBusPL=false;var spatialAnalystManager=mapControl.GetSpatialAnalystManager();spatialAnalystManager.FuzzyFindBusStop(BusStopName,onFindBusStopComplete,onQueryError);OProgressBar("搜索");}
function onFindBusStopComplete(busStops){if(busStops&&busStops.length!=0){$("BusPT").innerHTML="公交站点查询结果:"+busStops.length;var str="";str+='<table style="width: 125px;" cellspacing="0" cellpadding="0">';for(var i=0;i<busStops.length;i++){str+='<tr>';str+='<td style="width: 100px; height: 20px">';str+=(i+1)+":<a style='color:blue;cursor:pointer;' onclick='ShowBusStop("+busStops[i].smId+");'>"+busStops[i].stopName+"</a>";str+='</td>';str+='<td style="width: 25px"><img src="images/busline.gif" style="width=19px; height=11px;cursor:pointer;" onclick="GetAllBusLine('+busStops[i].stopId+');bFromStopWin=true;" alt="经过站点的路线" /></td>';str+='</tr>';}str+='</table>';$("BusP").innerHTML=str;}else{$("BusPT").innerHTML="没有找到公交站点!";}if(BoolBackBusPL==true){xianshi("BBusPoint");}else{yunchang("BBusPoint");}SwitchRSWin(4);CProgressBar();}
function ShowBusStop(id){ClearHighlight();if(!id){alert("请输入站点名！");return;}mapControl.ShowBusStop(id,onShowBusStopComplete,onQueryError);}
function onShowBusStopComplete(vb){}
function GetAllBusLine(id){BoolBackBusPL=true;mapControl.GetSpatialAnalystManager().GetBusLinesByStopID(id,onFindBusLineComplete,onQueryError);}
function FindBusLine(){var BusLineName=trim(document.getElementById("fuzzyBusLineName").value);if(BusLineName==""){alert("请输入公交路线名！");return;}if(!BusLineName){alert("请输入公交路线名！");return;}BoolBackBusPL=false;var spatialAnalystManager=mapControl.GetSpatialAnalystManager();spatialAnalystManager.FuzzyFindBusLine(BusLineName,onFindBusLineComplete,onQueryError);OProgressBar("搜索");}
function onFindBusLineComplete(busLines){if(busLines&&busLines.length!=0){$get("BusLT").innerHTML="公交路线查询结果:"+busLines.length;var str='<table style="width: 125px;" cellspacing="0" cellpadding="0">';for(var i=0;i<busLines.length;i++){str+='<tr>';str+='<td style="width: 100px">';str+=(i+1)+":<a style='color:blue;cursor:pointer;' onclick='ShowBusLine("+busLines[i].lineId+","+busLines[i].smId+",\""+busLines[i].directionSign+"\");'>"+busLines[i].lineName;if(busLines[i].directionSign=="下行"){str+="(下行)";}str+="</a>";str+='</td>';str+='<td style="width: 25px"><img src="images/bus.gif" style="width=19px; height=11px;cursor:pointer;" onclick="GetAllBusStop('+busLines[i].lineId+",\'"+busLines[i].directionSign+'\');bFromLineWin=true;" alt="经过的站点" /></td>';str+='</tr>';}str+='</table>';$("BusL").innerHTML=str;}else{$get("BusLT").innerHTML="没有找到公交线路!";}if(BoolBackBusPL==true){xianshi("BBusLine");}else{yunchang("BBusLine");}SwitchRSWin(5);CProgressBar();}
function ShowBusLine(UserID,id,direction){ClearHighlight();if(!id){alert("请输入公交路线！");return;}var spatialAnalystManager=mapControl.GetSpatialAnalystManager();mapControl.ShowBusLine(id,onShowBusLineComplete,onQueryError);if(direction=="上行"||trim(direction)==""){spatialAnalystManager.GetFollowingStops(UserID,true,onFindBusAllStop,onQueryError);}else if(direction=="下行"){spatialAnalystManager.GetFollowingStops(UserID,false,onFindBusAllStop,onQueryError);}}
function onFindBusAllStop(busStops){if(busStops&&busStops.length!=0){for(var i=0;i<busStops.length;i++){var innerHtml;innerHtml="<img alt='"+trim(busStops[i].stopName)+"' src='images/bus.gif' style='cursor:pointer' />";mapControl.CustomLayer.InsertMark("BusStop"+i,parseFloat(busStops[i].Location.x.toString()),parseFloat(busStops[i].Location.y.toString()),10,10,innerHtml,"",200);}}}
function onShowBusLineComplete(busLine){}
function GetAllBusStop(id,direction){if(direction==""||direction=="上行"){mapControl.GetSpatialAnalystManager().GetFollowingStops(id,true,onFindBusStopComplete,onQueryError);}else if(direction=="下行"){mapControl.GetSpatialAnalystManager().GetFollowingStops(id,false,onFindBusStopComplete,onQueryError);}BoolBackBusPL=true;}
function FindRoad(){mpagecount=13;npage=0;var str=trim($("fuzzyRoadName").value);if(str==""){alert("请输入道路名！");return;}var roadName=$("fuzzyRoadName").value;m_LayerNames=Configure.GetRoadLayer();m_ReturnFields=Configure.GetNPOILayerField();m_WhereClause="NAME like '%"+str+"%'";var queryLayer=new SuperMap.IS.QueryLayer();var queryParam=new SuperMap.IS.QueryParam();queryLayer.layerName=m_LayerNames;queryLayer.returnFields=m_ReturnFields;queryLayer.whereClause=m_WhereClause;queryLayer.sortClause="order by Name";queryParam.hasGeometry=true;queryParam.queryAllLayer=false;queryParam.startRecord=0;queryParam.expectCount=13;queryParam.queryLayers=new Array();queryParam.queryLayers[0]=queryLayer;queryParam.highlight=new SuperMap.IS.Highlight();queryParam.highlight.highlightQueryArea=false;queryParam.highlight.highlightResult=false;mapControl.GetQueryManager().QueryBySql(queryParam,OnRoadComplete,onQueryError);queryLayer=null;queryParam=null;clearResult();OProgressBar("搜索");}
function OnRoadComplete(resultSet){ClearHighlight();if(resultSet.totalCount>0){if(npage==0){pagecount=Math.ceil(resultSet.totalCount/13);}var leftcount=13;if(npage==pagecount){leftcount=resultSet.totalCount%mpagecount;}for(var i=0;i<resultSet.recordsets.length;i++){for(var j=0;j<resultSet.recordsets[i].records.length;j++){var record=resultSet.recordsets[i].records[j];if(!record){return;}$("Rs1").innerHTML+="<div style='width:161px;background-color:#d4d9de'><a style='font-size:12px;color:#ef6306;cursor:pointer;' onclick=ShowLine('"+resultSet.recordsets[i].layerName+"','"+trim(record.fieldValues[1])+"') >"+record.fieldValues[1]+"</a>"+'<a id="jiucuo" style="position:absolute;left:120px;font-size: 12px;color:blue;cursor:pointer;" onclick="MapCorrect('+"'"+record.fieldValues[1]+"'"+')">纠错</a>'+"</div><br>";}}ControlPage(resultSet.totalCount,"RoadQueryTurnUp");}else{$("Rs1").innerHTML="查询结果为空！";$("Rs2").innerHTML="";}SwitchRSWin(1);CProgressBar();}
function ShowLine(layername,name){ClearHighlight();var queryParam=new SuperMap.IS.QueryParam();queryParam.queryLayers=new Array();var ql=new SuperMap.IS.QueryLayer();ql.layerName=layername;ql.returnFields=new Array();ql.returnFields[0]="Smid";ql.whereClause="Name like '"+name+"'";queryParam.queryLayers.push(ql);queryParam.startRecord=0;queryParam.expectCount=25;queryParam.queryAllLayer=false;queryParam.returnShape=true;queryParam.highlight=new SuperMap.IS.Highlight();queryParam.highlight.highlightQueryArea=false;queryParam.highlight.highlightResult=false;mapControl.GetQueryManager().QueryBySql(queryParam,OnShowLineComplete,onQueryError);queryParam=null;}
function OnShowLineComplete(resultSet){if(resultSet.totalCount>0){var intI=0;var mcs=new Array();for(var i=0;i<resultSet.recordsets.length;i++){for(var j=0;j<resultSet.recordsets[i].records.length;j++){Array.addRange(mcs,resultSet.recordsets[i].records[j].shape.points);var xs=new Array();var ys=new Array();xs.length=0;ys.length=0;for(var t=0;t<resultSet.recordsets[i].records[j].shape.points.length;t++){xs.push(resultSet.recordsets[i].records[j].shape.points[t].x);ys.push(resultSet.recordsets[i].records[j].shape.points[t].y);}intI+=1;mapControl.CustomLayer.InsertLine(intI,xs,ys,3,"blue");}}mapControl.ViewByPoints(mcs);}}
function RoadQueryTurnUp(e){clearResult();var queryParam=new SuperMap.IS.QueryParam();queryParam.queryLayers=new Array();var ql=new SuperMap.IS.QueryLayer();ql.layerName=m_LayerNames;ql.returnFields=m_ReturnFields;ql.whereClause=m_WhereClause;queryParam.queryLayers.push(ql);npage=e;queryParam.startRecord=e*13+1;queryParam.expectCount=13;queryParam.highlight=new SuperMap.IS.Highlight();queryParam.highlight.highlightQueryArea=false;queryParam.highlight.highlightResult=false;mapControl.GetQueryManager().QueryBySql(queryParam,OnRoadComplete,onQueryError);queryParam=null;OProgressBar("搜索");}