全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
'获得导入数据的数目
Dim iInFCNum As Integer
iInFCNum = pInDatasetNameCol.Count
'获得输出的数据库名和数据集名
Dim sOutFDSName As String
Dim sOutGDBName As String
sOutFDSName = GetPathName(strGDBPath, 1)
sOutGDBName = GetPathName(strGDBPath, 0)
'获得输出要素集的IFeatureDatasetName
Dim pWSF As IWorkspaceFactory
Set pWSF = New AccessWorkspaceFactory
Dim pWS As IWorkspace
Set pWS = pWSF.OpenFromFile(sOutGDBName, 0)
Dim pOutFeatureWS As IFeatureWorkspace
Set pOutFeatureWS = pWS
'获得输出要素集的Dataset Name
Dim pOutFDSName As IFeatureDatasetName
Dim pOutFDS As IFeatureDataset
Set pOutFDS = pOutFeatureWS.OpenFeatureDataset(sOutFDSName)
Set pOutFDSName = pOutFDS.FullName
Dim i As Integer
For i = 1 To iInFCNum
Dim pOutPropertySet As IPropertySet
Set pOutPropertySet = New PropertySet
pOutPropertySet.SetProperty "DATASET", sOutGDBName
Dim pOutWorkspaceName As IWorkspaceName
Set pOutWorkspaceName = New WorkspaceName
pOutWorkspaceName.ConnectionProperties = pOutPropertySet
pOutWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory.1"
'设置输出要素的FeatureClass Name
Dim pOutFCName As IFeatureClassName
Set pOutFCName = New FeatureClassName
Dim pDatasetName As IDatasetName
Set pDatasetName = pOutFCName
Set pDatasetName.WorkspaceName = pOutWorkspaceName
pDatasetName.name = pOutNameCol.Item(i)
'获得输入要素的FeatureClass Name
Dim pInDatasetName As IDatasetName
Set pInDatasetName = pInDatasetNameCol.Item(i)
'判断是否有重名现象
Dim pWS2 As IWorkspace2
Set pWS2 = pWS
'如果名称已存在
If pWS2.NameExists(esriDTFeatureClass, pDatasetName.name) Then
Dim R
R = MsgBox("矢量要素" & pDatasetName.name & "在数据库中已存在!" & Chr(13) & "是否覆盖?", vbExclamation + vbYesNo)
'覆盖原矢量要素
If R = vbYes Then
Dim pFWS As IFeatureWorkspace
Set pFWS = pWS
Dim pDataset As IDataset
Set pDataset = pFWS.OpenFeatureClass(pDatasetName.name)
pDataset.Delete
Set pFWS = Nothing
Set pDataset = Nothing
'不覆盖,则退出for循环,忽略这个要素,转入下一个要素的导入
Else
GoTo NextStep
End If
Set pWS2 = Nothing
End If
'打开Table获得Fields
Dim pname As IName
Dim pInTable As ITable
Set pname = pInDatasetName
Set pInTable = pname.Open
Dim pInFields As IFields
Set pInFields = pInTable.Fields
'检查Field Name
Dim pFieldChecker As IFieldChecker
Set pFieldChecker = New FieldChecker
Dim pOutFields As IFields
pFieldChecker.Validate pInFields, Nothing, pOutFields
'对Fields进行循环查,查找Geometry域
Dim j As Integer
Dim pGeoField As IField
For j = 0 To pOutFields.FieldCount - 1
If pOutFields.Field(j).Type = esriFieldTypeGeometry Then
Set pGeoField = pOutFields.Field(j)
Exit For
End If
Next j
'获得Geometry Field的GeometryDef
Dim pOutFCGeoDef As IGeometryDef
Set pOutFCGeoDef = pGeoField.GeometryDef
'设置GeometryDef的GridCount,GridSize,SpatialReference
Dim pOutFCGeoDefEdit As IGeometryDefEdit
Set pOutFCGeoDefEdit = pOutFCGeoDef
pOutFCGeoDefEdit.GridCount = 1
pOutFCGeoDefEdit.GridSize(0) = DefaultIndexGrid(pInTable)
Dim re
'判断空间参考是否一致,全局变量m_SpatialRef是创建的矢量要素集的空间参考
If m_SpatialRef.name <> pGeoField.GeometryDef.SpatialReference.name Then
re = MsgBox(pInDatasetName.name & "的空间参考与数据库中的矢量要素集空间参考不符!" & Chr(13) _
& "导入后会丢失数据。 是否继续导入?", vbYesNo + vbExclamation)
Set pOutFCGeoDefEdit.SpatialReference = m_SpatialRef
If re = vbNo Then
GoTo NextStep
End If
Else
Set pOutFCGeoDefEdit.SpatialReference = pGeoField.GeometryDef.SpatialReference
End If
'+++++++++++++++++++
'Set pOutFCGeoDefEdit.SpatialReference = pGeoField.GeometryDef.SpatialReference
'进行导入
Dim pConverter As IFeatureDataConverter
Set pConverter = New FeatureDataConverter
pConverter.ConvertFeatureClass pInDatasetNameCol.Item(i), Nothing, pOutFDSName, pOutFCName, pOutFCGeoDef, pOutFields, "", 1000, 0
Set pOutPropertySet = Nothing
Set pOutWorkspaceName = Nothing
Set pOutFCName = Nothing
Set pDatasetName = Nothing
Set pInDatasetName = Nothing
Set pname = Nothing
Set pInTable = Nothing
Set pFieldChecker = Nothing
Set pOutFields = Nothing
Set pGeoField = Nothing
Set pOutFCGeoDef = Nothing
Set pConverter = Nothing
NextStep:
Next i
Set pWSF = Nothing
Set pWS = Nothing
End Function