📄 demo.aspx.cs
字号:
// sb.Append( "<br>" + i.ToString() + ". <b>" + stopName + "</b> ;" );
busLineItems = this.MapControl1.SpatialAnalystOperator.GetBuslineByStop(interChangeID);
if (busLineItems != null)
{
int buslineCount = busLineItems.Length;
for (int j = 0; j < buslineCount; j++)
{
string buslineName = busLineItems[j].Name;
int buslineSmID = busLineItems[j].SmID;
if (!string.IsNullOrEmpty(busLineItems[j].DirectionSign))
{
buslineName += "(" + busLineItems[j].DirectionSign + ")";
}
Microsoft.Web.UI.WebControls.TreeNode buslineNode = new Microsoft.Web.UI.WebControls.TreeNode();
buslineNode.Text = buslineName;
buslineNode.NodeData = buslineSmID.ToString(NumberFormatInfo.InvariantInfo);
stopNode.Nodes.Add(buslineNode);
}
}
this.treeBusResult.Nodes.Add(stopNode);
}
// this.lblBusResult.Text += sb.ToString();
}
/// <summary>
/// 公交线路查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBusLineQuery_Click(object sender, System.EventArgs e)
{
SetBusToolboxActive();
this.TreeShowType = "BusLine";
this.treeBusResult.Nodes.Clear();
this.treeBusResult.Visible = false;
string fuzzyBusLineText = this.txtBusLineQuery.Text;
if (string.IsNullOrEmpty(fuzzyBusLineText))
{
ShowAlertDialog("BusLineQuery", "请输入公交线路!");
return;
}
BusLineItem[] buslineItems = this.MapControl1.SpatialAnalystOperator.FindBusline(fuzzyBusLineText);
if (buslineItems == null)
{
ShowAlertDialog("BusLineQuery", "没有找到对应的线路!");
return;
}
this.PanelBusSearch.Visible = false;
this.PanelBusResult.Visible = true;
this.treeBusResult.Visible = true;
this.btnBusResultCancel.Visible = true;
int buslineCount = buslineItems.Length;
for (int i = 0; i < buslineCount; i++)
{
string buslineName = buslineItems[i].Name;
int buslineID = buslineItems[i].ID;
int buslineSmID = buslineItems[i].SmID;
string directionSign = buslineItems[i].DirectionSign;
if (!string.IsNullOrEmpty(directionSign))
{
buslineName += "(" + directionSign + ")";
}
bool bForward;
if (buslineItems[i].Direction == SuperMap.IS.Utility.BusLineDirection.Backward)
{
bForward = false;
}
else
{
bForward = true;
}
Microsoft.Web.UI.WebControls.TreeNode buslineNode = new Microsoft.Web.UI.WebControls.TreeNode();
buslineNode.Text = buslineName;
buslineNode.NodeData = buslineSmID.ToString(NumberFormatInfo.InvariantInfo);
BusStopItem[] busStopItems = this.MapControl1.SpatialAnalystOperator.GetBusStopByLine(buslineID, bForward);
if (busStopItems != null)
{
int busStopCount = busStopItems.Length;
for (int j = 0; j < busStopCount; j++)
{
string stopName = busStopItems[j].Name;
int stopID = busStopItems[j].ID;
string stopNodeText = stopName + "(" + stopID + ")";
Microsoft.Web.UI.WebControls.TreeNode stopNode = new Microsoft.Web.UI.WebControls.TreeNode();
stopNode.Text = stopNodeText;
stopNode.NodeData = stopID.ToString(NumberFormatInfo.InvariantInfo);
buslineNode.Nodes.Add(stopNode);
}
}
this.treeBusResult.Nodes.Add(buslineNode);
}
}
#endregion
#region 公交方案查询(二次查询)
/// <summary>
/// 公交方案查询(二次查询)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnFindSolution_Click(object sender, System.EventArgs e)
{
// 设置公交层位于最上方。
SetBusToolboxActive();
if (this.lstBusStarts.Items.Count < 1 || this.lstBusEnds.Items.Count < 1)
{
return;
}
int startID, endID, transferTimes;
int.TryParse(this.lstBusStarts.SelectedValue, out startID);
int.TryParse(this.lstBusEnds.SelectedValue, out endID);
int.TryParse(this.lstChangeTimes.SelectedValue, out transferTimes);
bool bMost = this.checkBoxMostChange.Checked ? true : false;
BusSolutionItem solution = this.MapControl1.SpatialAnalystOperator.GetBusSolution(startID, endID, transferTimes, bMost, 10);
if (solution != null && solution.RoutingItems != null && solution.RoutingItems.Length > 0)
{
ShowBusSolutionResult(solution);
}
else
{
ShowBusSolutionResultNothing();
}
// 隐藏二次查询面板。
this.panelBusStops.Visible = false;
}
#endregion
#region 路径分析
/// <summary>
/// 路径分析之前的事件,设置网络分析参数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_PathFinding(object sender, SuperMap.IS.WebControls.EventArguments.PathFindingEventArgs e)
{
e.Params.ReturnNodePositions = true;
e.Params.ReturnEdgeIDsAndNodeIDs = true;
e.Params.NetworkParams.NetworkSetting.NetworkLayerName = ConfigurationSettings.AppSettings["NetworkLayerName"];
double.TryParse(ConfigurationSettings.AppSettings["PathFinding_Tolerance"], out e.Params.NetworkParams.Tolerance);
}
/// <summary>
/// 路径分析完成后事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_PathFound(object sender, SuperMap.IS.WebControls.EventArguments.PathFoundEventArgs e)
{
if (e.TotalLength > 0)
{
// string strResult = string.Concat(e.TotalLength.ToString(), " ", MapControl1.CoordUnits.ToString());
string strResult = string.Concat(e.TotalLength.ToString(), " ", ConfigurationSettings.AppSettings["CoordUnits"]);
strResult += Environment.NewLine + "共经过 " + e.EdgeIDs.Length + " 条边, " + e.NodeIDs.Length + " 个中间节点。";
this.DisplayResult(strResult);
}
else
{
this.DisplayResult(null);
}
}
#endregion
#region 图层可查询属性或可显示属性改变
/// <summary>
/// 图层可查询属性改变后事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_LayerQueryableChanged(object sender, SuperMap.IS.WebControls.EventArguments.LayerChangedEventArgs e)
{
if (Page.IsPostBack)
{
SetLayerToolboxActive();
}
}
/// <summary>
/// 图层可显示属性改变后事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_LayerVisibleChanged(object sender, SuperMap.IS.WebControls.EventArguments.LayerChangedEventArgs e)
{
if (Page.IsPostBack)
{
SetLayerToolboxActive();
}
}
#endregion
#region SetToolboxActive
/// <summary>
/// 设置公交分析层位于最上方。
/// </summary>
private void SetBusToolboxActive()
{
if (Page.IsStartupScriptRegistered("SetBusToolboxActive"))
{
return;
}
string SetBusToolboxActiveScript = "";
SetBusToolboxActiveScript += "<SCRIPT language=javascript>";
SetBusToolboxActiveScript += " function SetBusToolboxActive(){";
SetBusToolboxActiveScript += " SwitchToolboxTab(3);";
SetBusToolboxActiveScript += " }";
SetBusToolboxActiveScript += "</SCRIPT>";
Page.RegisterClientScriptBlock("SetBusToolboxActiveScript", SetBusToolboxActiveScript);
Page.RegisterStartupScript("SetBusToolboxActive", "<script language='javascript'>SetBusToolboxActive();</script>");
}
/// <summary>
/// 设置图层控制层位于最上方。
/// </summary>
private void SetLayerToolboxActive()
{
if (Page.IsStartupScriptRegistered("SetLayerToolboxActive"))
{
return;
}
string SetLayerToolboxActiveScript = "";
SetLayerToolboxActiveScript += "<SCRIPT language=javascript>";
SetLayerToolboxActiveScript += " function SetLayerToolboxActive(){";
SetLayerToolboxActiveScript += " SwitchToolboxTab(1);";
SetLayerToolboxActiveScript += " }";
SetLayerToolboxActiveScript += "</SCRIPT>";
Page.RegisterClientScriptBlock("SetLayerToolboxActiveScript", SetLayerToolboxActiveScript);
Page.RegisterStartupScript("SetLayerToolboxActive", "<script language='javascript'>SetLayerToolboxActive();</script>");
}
/// <summary>
/// 设置Edit层位于最上方。
/// </summary>
private void SetEditToolboxActive()
{
if (Page.IsStartupScriptRegistered("SetEditToolboxActive"))
{
return;
}
string SetEditToolboxActive = "";
SetEditToolboxActive += "<SCRIPT language=javascript>";
SetEditToolboxActive += " function SetEditToolboxActive(){";
SetEditToolboxActive += " SwitchToolboxTab(4,2);";
SetEditToolboxActive += " }";
SetEditToolboxActive += "</SCRIPT>";
Page.RegisterClientScriptBlock("SetEditToolboxActive", SetEditToolboxActive);
Page.RegisterStartupScript("SetEditToolboxActive", "<script language='javascript'>SetEditToolboxActive();</script>");
}
#endregion
#region 公交结果treeview的当前选择项发生变化时。高亮公交线路或者公交站点。
// 公交结果treeview的当前选择项发生变化时
private void treeBusResult_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
// try
// {
// SetBusToolboxActive();
// int newNode = Int32.Parse(e.NewNode);
// int busLineSmID = Int32.Parse(treeBusResult.Nodes[newNode].NodeData);
// this.MapControl1.SpatialAnalystOperator.ShowBusLine(busLineSmID);
// }
// catch
// {}
SetBusToolboxActive();
Microsoft.Web.UI.WebControls.TreeNode treeNode = this.treeBusResult.GetNodeFromIndex(e.NewNode);
if (treeNode != null)
{
if (this.TreeShowType != null && this.TreeShowType.Equals("Solution"))
{
// 当TreeView为Solution的查询结果
if (treeNode.GetNodeIndex().IndexOf(".") == -1)
{
// 选择的是高亮方案
int routingIndex = int.Parse(treeNode.GetNodeIndex());
BusRoutingItem routing = this.BusSolutionRef.RoutingItems[routingIndex];
MapControl1.KeepHighlight = false;
MapControl1.SpatialAnalystOperator.ShowRouting(routing, m_busStopStyle, m_busLineStyle);
MapControl1.KeepHighlight = true;
}
else
{
if (treeNode.Parent != null)
{
Microsoft.Web.UI.WebControls.TreeNode pNode = (Microsoft.Web.UI.WebControls.TreeNode)treeNode.Parent;
if (pNode.GetNodeIndex().IndexOf(".") == -1)
{
// 选择高亮线路
int iBusLineSmID = int.Parse(treeNode.NodeData);
MapControl1.KeepHighlight = false;
this.MapControl1.SpatialAnalystOperator.ShowBusLine(iBusLineSmID, m_busLineStyle);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -