通过SDE读取矢量和栅格数据

Dim pFeatureWorkspace As IFeatureWorkspace
Dim pFeatureDataset As IFeatureDataset
Dim pfeatureclass As IFeatureClass
Dim pFLyr As IFeatureLayer
Dim strname As String

'数据库矢量数据=========================================
'打开矢量数据的workspace,通过SDE来打开数据库
Set pFeatureWorkspace = openSDEWorkspace("China250000")

Set pFLyr = New featurelayer
strname = "changchun"
Set pFLyr.featureclass = pFeatureWorkspace.OpenFeatureClass(strname) '打开选择的featureclass
pFLyr.Name = pFLyr.featureclass.AliasName '对图层进行命名

Set pGeoDs = pFLyr
Set pClone = pGeoDs.SpatialReference
If pClone.IsEqual(frmMain.MapMain.SpatialReference) Or blnNoAgain Then '2006-5-09
Call frmMain.MapMain.AddLayer(pFLyr) '添加图层

'数据库栅格数据============================================

Dim pRasterDataset As IRasterDataset
Dim strRasterName As String

Set pRasterDataset = GetRasterFromSDE(mdlFunction.Sdeserver, "5151/tcp", "China250000",mdlFunction.SdeUser, mdlFunction.SdePwd, "China250000.SDE.Changchun"
Set pRasLyr = New RasterLayer
pRasLyr.CreateFromDataset pRasterDataset

strRasterName = GetMapNumName(pRasLyr.Name)
pRasLyr.Name = strRasterName
Set pGeoDs = pRasLyr
Set pClone = pGeoDs.SpatialReference
'
If pClone.IsEqual(frmMain.MapMain.SpatialReference) Then '2006-5-09
Call frmMain.MapMain.AddLayer(pRasLyr)
ElseIf MsgBox("所加图层与当前控件空间参考不同,是否继续添加", vbOKCancel, "信息提示") = vbOK Then
Set frmMain.MapMain.SpatialReference = pClone
Call frmMain.MapMain.AddLayer(pRasLyr)
End If
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值