zoukankan      html  css  js  c++  java
  • ArcGIS Server 中查询结果要素定位

       

      其中index为当前要素在查询结果集(dataset或者datatable)中的索引号  
        /// <param name="index">要素索引号</param>
        public void FeatureLocation(int index)
        {
            DataSet ds = Session["Gridview1"] as DataSet; //Session["Gridview1"] 为查询结果集
            DataTable pDT = ds.Tables[0];
            if (pDT.Rows.Count < 1) return;
            try
            {
                ESRI.ArcGIS.ADF.Web.Display.Graphics.GraphicsLayer pGraLyr = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ToGraphicsLayer(pDT);
                ESRI.ArcGIS.ADF.Web.Geometry.Geometry pGeo = pGraLyr.GeometryFromRow(pGraLyr.Rows[index]);
                ESRI.ArcGIS.ADF.Web.Geometry.Envelope Penv = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope();
                if (pGeo is ESRI.ArcGIS.ADF.Web.Geometry.Point)
                {
                    ESRI.ArcGIS.ADF.Web.Geometry.Point pPT = (ESRI.ArcGIS.ADF.Web.Geometry.Point)pGeo;
                    Penv.XMin = pPT.X - 0.00001;
                    Penv.XMax = pPT.X + 0.00001;
                    Penv.YMin = pPT.Y - 0.00001;
                    Penv.YMax = pPT.Y + 0.00001;

                }
                else if (pGeo is ESRI.ArcGIS.ADF.Web.Geometry.Polyline)
                {
                    ESRI.ArcGIS.ADF.Web.Geometry.Polyline pLY = (ESRI.ArcGIS.ADF.Web.Geometry.Polyline)pGeo;
                    Penv = ESRI.ArcGIS.ADF.Web.Geometry.Geometry.GetMinimumEnclosingEnvelope(pLY);

                }          //另外面的处理情况与线类似
                Penv = Penv.Expand(2);
                CustomFunction.Location.ClearTempElementInMap("TempEle", Map1);//此函数为清除定位标记
                Map1.Extent = Penv;
                CustomFunction.Location.AddTempGraphicElement(pGeo, false, "", false, System.Drawing.Color.Red, 40, Map1);//此函数为添加定位标记
                Map1.CallbackResults.CopyFrom(Toolbar1.CallbackResults);
                smapstring = Map1.CallbackResults.ToString();

                pDT.Dispose();
            }
            catch (Exception ex)
            {
                SystemLog.WriteLog("当前记录定位错误!", ex);
            }

        }

    一起学习GIS及其二次开发,一起进步!
  • 相关阅读:
    Java 中无参带返回值方法的使用
    Java 中无参无返回值方法的使用
    如何定义 Java 中的方法
    Java 中的二维数组
    使用 foreach 操作数组
    使用 Arrays 类操作 Java 中的数组
    如何使用 Java 中的数组
    Java 循环语句之多重循环
    UML常用图的几种关系的总结
    JAVA 对象引用,以及对象赋值
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/1438729.html
Copyright © 2011-2022 走看看