阅读:1924回复:3
[讨论]AO中加载DEM数据的方法?
我想通过IGxDialog打开DEM数据,但是找不到Layer和GxObject之间的连接点(类似加FeatureClass文件时FeatureLayer的FeatureClass和DataSet的关系,不知道我的表述是否正确),有过这方面经验的先人给点建议吧!
|
|
1楼#
发布于:2005-07-27 10:07
<P>DEM和栅格数据是一样的。</P>
<P>Public Sub AddCustomLayers(pMapCtrl As IMap)</P> <P> Dim pActiveView As esriCarto.IActiveView '地图控件的当前地图窗口<BR> Dim pDlg As esriCatalogUI.IGxDialog '打开图层对话框<BR> Dim pObjectFilter As esriCatalog.IGxObjectFilter '打开图层对话框的过滤条件<BR> Dim pGXSelect As esriCatalog.IEnumGxObject '在图层对话框中选择的图层</P> <P> Dim pFeatureLayer As IFeatureLayer<BR> Dim pGxObject As esriCatalog.IGxObject '选择图层中当前图层的下一层<BR> <BR> Dim pGXDataset As esriCatalog.IGxDataset '选择图层的数据集<BR> Dim pFeatLyr As esriCarto.IFeatureLayer '选择的图层<BR> Dim pAv As IActiveView<BR> <BR> Dim i As Long<BR> Set pAv = pMapCtrl<BR> Set pActiveView = pMapCtrl<BR> Set pDlg = New GxDialog<BR> pDlg.ButtonCaption = "添加"<BR> <BR> Set pObjectFilter = New GxFilterDatasets 'GxFilterRasterDatasets <BR> pDlg.AllowMultiSelect = True<BR> pDlg.title = "选择数据"<BR> Set pDlg.ObjectFilter = pObjectFilter<BR> If (pDlg.DoModalOpen(pActiveView.ScreenDisplay.hWnd, pGXSelect) = False) Then Exit Sub<BR> <BR> pGXSelect.Reset<BR> Set pGxObject = pGXSelect.Next</P> <P> Do While (Not pGxObject Is Nothing)<BR> Set pGXDataset = pGxObject</P> <P> If (TypeOf pGxObject Is IGxDataset) Then</P> <P> Set pGXDataset = pGxObject</P> <P> If pGXDataset.Type = esriDTFeatureClass Then<BR> Set pFeatLyr = New FeatureLayer<BR> Set pFeatLyr.FeatureClass = pGXDataset.Dataset<BR> pFeatLyr.name = pGXDataset.Dataset.name<BR> pMapCtrl.AddLayer pFeatLyr<BR> ElseIf pGXDataset.Type = esriDTRasterDataset Then '如果是栅格,包括DEM<BR> Dim pRL As IRasterLayer<BR> Set pRL = New RasterLayer<BR> pRL.CreateFromFilePath pDlg.FinalLocation.FullName ; "\" ; pGXDataset.Dataset.name<BR> pMapCtrl.AddLayer pRL<BR> <BR> End If<BR> End If</P> <P> Set pGxObject = pGXSelect.Next<BR> Loop</P> <P> pAv.refresh<BR>End Sub<BR></P> |
|
2楼#
发布于:2005-07-27 11:24
<P>感谢楼上的答复,我原来一直思考用CreateFromDataset方法</P>
<P>结果老是类型不匹配</P> <img src="images/post/smile/dvbbs/em04.gif" /> |
|
3楼#
发布于:2005-07-30 00:22
如果是从SDE中读得的栅格数据,这时应该用CreateFromDataset的方法。
|
|