首页 > 代码库 > ArcGlobe点击IGlobeServerLayer图层读取信息

ArcGlobe点击IGlobeServerLayer图层读取信息

ArcGISServer将点图层发布成Globe服务,AE开发中自定义识别工具,读取点数据信息。
1) 通过Locate方法获取图层对象,图层对象中的SearchOID就是你点中的要素Objectid。
2) 通过GlobeServer.Identify读取结果集IGlobeServerIdentifyResults。
 
代码如下:
 public override void onm ouseDown(int Button, int Shift, int X, int Y)        {            if (Button != 1) return;            //Get the element that the user selects            ESRI.ArcGIS.Geometry.IPoint ppPoint = new ESRI.ArcGIS.Geometry.PointClass();            ESRI.ArcGIS.Geometry.IZAware zAware = ppPoint as ESRI.ArcGIS.Geometry.IZAware;            zAware.ZAware = true;            object ppObject;            object ppOwner;            globeDisplay.Locate(globeDisplay.ActiveViewer, X, Y, false, false, out ppPoint, out ppOwner, out ppObject);            if (ppPoint == null) return;            if (!(ppOwner is IGlobeServerLayer)) return;            Help_Globe.FlashPoint(ppPoint);            gLayer = ppOwner as IGlobeServerLayer;            IGlobeLayerInfo gLayeInfo = gLayer.GlobeLayerInfo;            if (gLayeInfo.Name != "3dd文件中的点图层名称") return;            IGlobeServerIdentifyResults results = gLayer.GlobeServer.Identify(gLayer.GlobeServerLayerID, gLayer.SearchOID, gLayeInfo.Extent.Envelope);            if (results.Count > 0)            {                IGlobeServerIdentifyResult result = results.get_Element(0);                object dwmc = result.Properties.GetProperty("DW_MC");                if (Convert.IsDBNull(dwmc) || dwmc == null) return;                FormWuZhongInfo dlg = new FormWuZhongInfo(dwmc.ToString(), dwmc.ToString());                dlg.Text = dwmc.ToString();                dlg.ShowDialog();                            }            return;          }

  

ArcGlobe点击IGlobeServerLayer图层读取信息