⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.aspx.cs

📁 使用ASP.NET 2.0 (c#) 实现的gis 的地图系统
💻 CS
📖 第 1 页 / 共 5 页
字号:
            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 + -