📄 demo.aspx.cs
字号:
this.MapControl1.ClearHighlight();
}
/// <summary>
/// 标记自定义注记
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void img23_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
// 读取当前目录的配置文件CustomLayer.xml
System.Xml.XmlDocument xmlDom = new XmlDocument();
string curPath = Request.PhysicalApplicationPath;
string xmlPath = curPath + "CustomLayer.xml";
xmlDom.Load(xmlPath);
XmlNodeList objNodeList = xmlDom.SelectNodes("//CustomObject");
if (objNodeList != null)
{
MapControl1.CustomLayer.Visible = true;
int objCount = objNodeList.Count;
for (int i = 0; i < objCount; i++)
{
XmlNode curNode = objNodeList.Item(i);
if (curNode != null)
{
double x = 0, y = 0;
string id;
id = curNode.Attributes.GetNamedItem("id").InnerText;
if (curNode.Attributes.GetNamedItem("x") != null)
{
double.TryParse(curNode.Attributes.GetNamedItem("x").InnerText, out x);
}
if (curNode.Attributes.GetNamedItem("y") != null)
{
double.TryParse(curNode.Attributes.GetNamedItem("y").InnerText, out y);
}
string strObjType = curNode.Attributes.GetNamedItem("type").InnerText;
string innerHtml = string.Empty;
if (strObjType == "text")
{
string text = string.Empty;
if (curNode.Attributes.GetNamedItem("text") != null)
{
text = curNode.Attributes.GetNamedItem("text").InnerText;
}
if (curNode.Attributes.GetNamedItem("link") != null)
{
innerHtml = "<a href='" + curNode.Attributes.GetNamedItem("link").InnerText + "' ";
if (curNode.Attributes.GetNamedItem("target") != null)
{
innerHtml += " target='" + curNode.Attributes.GetNamedItem("target").InnerText + "' ";
}
if (curNode.Attributes.GetNamedItem("style") != null)
{
innerHtml += "style='" + curNode.Attributes.GetNamedItem("style").InnerText + "' ";
}
innerHtml += ">" + text + "</a>";
}
else
{
innerHtml = text;
}
if (curNode.Attributes.GetNamedItem("alt") != null)
{
innerHtml = "<font title='" + curNode.Attributes.GetNamedItem("alt").InnerText + "'>" + innerHtml + "</font>";
}
}
else if (strObjType == "image")
{
string imgText = string.Empty;
string imgSrc = string.Empty;
string altText = string.Empty;
if (curNode.Attributes.GetNamedItem("alt") != null)
{
altText = curNode.Attributes.GetNamedItem("alt").InnerText;
}
if (curNode.Attributes.GetNamedItem("src") != null)
{
imgSrc = curNode.Attributes.GetNamedItem("src").InnerText;
imgText = "<img src='" + imgSrc + "' alt='" + altText + "' border=0 />";
}
if (curNode.Attributes.GetNamedItem("link") != null)
{
innerHtml = "<a href='" + curNode.Attributes.GetNamedItem("link").InnerText + "' target='_blank'>" + imgText + "</a>";
}
else
{
innerHtml = imgText;
}
}
MapControl1.CustomLayer.Divs.Add(id, x, y, innerHtml);
}
}
}
}
/// <summary>
/// 清除自定义注记(清除 CutomLayer 所有内容)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void img24_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
MapControl1.CustomLayer.Divs.Clear();
MapControl1.CustomLayer.Visible = false;
}
// 清除标记。
private void img27_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
int tempId;
try
{
tempId = (int)Session["divId"];
Session.Remove("divId");
}
catch
{
tempId = 0;
}
string divId;
for (int i = 1; i <= tempId; i++)
{
divId = "PointSelect_" + i;
this.MapControl1.CustomLayer.Divs.Remove(divId);
}
}
#endregion
#region 面积量算, 距离量算
/// <summary>
/// 面积量算前事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_AreaMeasuring(object sender, SuperMap.IS.WebControls.EventArguments.MeasuringEventArgs e)
{
e.IsHighlight = true;
}
/// <summary>
/// 面积量算完成后事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_AreaMeasured(object sender, SuperMap.IS.WebControls.EventArguments.MeasuredEventArgs e)
{
if (e.Area > 0)
{
// string result = e.Result.Area.ToString() + " square " + MapControl1.CoordUnits.ToString();
string result = e.Area + ConfigurationSettings.AppSettings["AreaCoordUnits"];
this.DisplayResult(result);
}
}
/// <summary>
/// 距离量算前事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_DistanceMeasuring(object sender, SuperMap.IS.WebControls.EventArguments.MeasuringEventArgs e)
{
e.IsHighlight = true;
}
/// <summary>
/// 距离量算完成后事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_DistanceMeasured(object sender, SuperMap.IS.WebControls.EventArguments.MeasuredEventArgs e)
{
if (e.Distance > 0)
{
// string result = e.Result.Distance.ToString() + " " + MapControl1.CoordUnits.ToString();
string result = e.Distance.ToString() + ConfigurationSettings.AppSettings["CoordUnits"];
this.DisplayResult(result);
}
}
/// <summary>
/// 显示距离量算、面积量算的结果(弹出对话框),以及结果为空时弹出对话框以提示用户。
/// </summary>
/// <param name="result"></param>
private void DisplayResult(string result)
{
string script = string.Empty;
string displayResult = string.Empty;
if (string.IsNullOrEmpty(result))
{
displayResult = "没有匹配的结果!";
}
else
{
displayResult = "结果为: " + result.Replace("\"", "\\\"");
}
this.ShowAlertDialog("DisplayResult", displayResult);
}
#endregion
#region SQL查询
/// <summary>
/// SQL查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSQLQuery_Click(object sender, System.EventArgs e)
{
/*
QueryParam queryParam = new QueryParam();
queryParam.ExpectCount = 10;
queryParam.Highlight = true;
queryParam.IsAllLayer = true;
queryParam.ReturnFields = new string[2];
queryParam.ReturnFields[0] = "SMID";
queryParam.ReturnFields[1] = "Name";
queryParam.WhereClause = "name like '*" + this.txtSQLQuery.Text + "*'";
queryParam.HasGeometry = true;
ResultSet resultSet = this.MapControl1.QueryBySQL(queryParam);
*/
if (this.txtSQLQuery.Text.Length == 0)
{
ShowAlertDialog("SqlQuery", "请输入查询字符串!");
return;
}
ResultSet resultSet = this.DoSqlQuery(this.txtSQLQuery.Text, 0, 11);
//ShowQueryResult(resultSet, 10); //改为在页面的 PreRender 事件中呈现。
this.QueryResult = resultSet;
if (resultSet != null && resultSet.TotalCount > 0)
{
SetQueryBtnsVisibility(resultSet.TotalCount, 1, 10);
SetQueryClientField(this.txtSQLQuery.Text, 1);
}
else
{
SetQueryBtnsVisibility(0, 1, 10);
SetQueryClientField(string.Empty, 0);
}
}
#endregion
#region 查询完成后的事件
/// <summary>
/// 查询完成后的事件,显示查询结果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MapControl1_QueryCompleted(object sender, SuperMap.IS.WebControls.EventArguments.QueryCompletedEventArgs e)
{
ResultSet result = new ResultSet();
result.CustomResponse = e.CustomResponse;
result.Recordsets = e.Recordsets;
result.TotalCount = e.TotalCount;
result.MapResult = new MapImage();
result.MapResult.ReturnMapParam = this.MapControl1.GetCurrentMapParam();
//ShowQueryResult(result, 10);
this.QueryResult = result;
SetQueryClientField(string.Empty, 0);
SetQueryBtnsVisibility(0, 1, 10);
/***************以下代码实现了与DataSet的绑定**********
DataSet dataSet = result.ToDataSet();
if(dataSet != null)
{
DtgResult.DataSource = dataSet;
DtgResult.DataBind();
}
*/
}
/// <summary>
/// 在当前窗口或者新窗口中显示查询结果
/// </summary>
/// <param name="resultSet"></param>
/// <param name="maxLength"></param>
private void ShowQueryResult(SuperMap.IS.Utility.ResultSet resultSet, int maxLength)
{
if (resultSet == null || resultSet.Recordsets == null || resultSet.Recordsets.Length <= 0 || resultSet.TotalCount <= 0)
{
DisplayResult(null);
return;
}
bool showInNewWindow = false; // 指示在当前窗口还是新窗口中显示查询结果
if (showInNewWindow)
{
ShowQueryResultInNewWindow(resultSet, maxLength);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -