实验指导书GeoDataBase2Word文档下载推荐.docx
- 文档编号:20064814
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:25
- 大小:20.19KB
实验指导书GeoDataBase2Word文档下载推荐.docx
《实验指导书GeoDataBase2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验指导书GeoDataBase2Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
DimpFeatureWorkspaceAsIFeatureWorkspace
DimpFeatureLayerAsIFeatureLayer
DimpFeatureClassAsIFeatureClass
DimpPrimaryTableAsITable
DimpForeignTableAsITable
DimpDisplayTableAsIDisplayTable
DimpMemoryRelationshipCFAsIMemoryRelationshipClassFactory
DimpRelationshipClassAsIRelationshipClass
DimpDisplayRelationshipCAsIDisplayRelationshipClass
DimnNumberAsInteger
DimsForeignFileAsString
OnErrorGoToErrorHandler:
Join=False
sForeignFile=Dir(sFilePath&
"
\"
&
sFileName)
If(sForeignFile="
"
)Then
MsgBox"
TheForeignFileisnotexist."
ExitFunction
EndIf
SetpWorkspaceFactory=NewShapefileWorkspaceFactory
SetpWorkspace=pWorkspaceFactory.OpenFromFile(sFilePath,0)
SetpFeatureWorkspace=pWorkspace
SetpForeignTable=pFeatureWorkspace.OpenTable(sFileName)
SetpMxDocument=ThisDocument
SetpMap=pMxDocument.FocusMap
FornNumber=0TopMap.LayerCount-1
IfpMap.Layer(nNumber).Name=sLayerNameThen
SetpFeatureLayer=pMap.Layer(nNumber)
ExitFor
Next
IfpFeatureLayerIsNothingThen
NoLayer'
sNameis"
sLayerName
SetpDisplayTable=pFeatureLayer
SetpFeatureClass=pDisplayTable.DisplayTable
SetpPrimaryTable=pFeatureClass
SetpMemoryRelationshipCF=NewMemoryRelationshipClassFactory
SetpRelationshipClass=pMemoryRelationshipCF.Open("
TabletoLayer"
pPrimaryTable,sFieldName,_
pForeignTable,sFieldName,"
forward"
"
backward"
esriRelCardinalityOneToOne)
SetpDisplayRelationshipC=pFeatureLayer
pDisplayRelationshipC.DisplayRelationshipClasspRelationshipClass,esriLeftOuterJoin
Join=True
ErrorHandler:
MsgBoxErr.Description
EndFunction
PrivateSubUIButtonControl1_Click()
DimpVBProjectAsVBProject
SetpVBProject=ThisDocument.VBProject
Join"
WorldCountries"
pVBProject.FileName&
\..\..\..\.."
\data"
Continents.dbf"
FID"
ExitSub
EndSub
1.2如何浏览纪录(属性查询)
本例实现的是如何按照给定的查询要求,找出满足要求的记录。
创建IQueryFilter接口对象,设置IQueryFilter.WhereClause属性为属性查询条件,使用IFeatureClass.Search方法进行查询,返回ICursor接口对象
主要用到了IFeatureClass接口、IFeature接口、IFeatureCursor接口和IQueryFilter接口。
函数SelectFeatures在当前激活的Map的第一个图层中查出"
FID<
2"
的所有记录。
PrivateSubSelectFeatures()
DimpFeatureAsIFeature
DimpFeatureCursorAsIFeatureCursor
DimpQueryFilterAsIqueryFilter
If(pMap.LayerCount=0)Then
MsgBox("
缺少数据"
)
SetpFeatureLayer=pMap.Layer(0)
SetpFeatureClass=pFeatureLayer.FeatureClass
SetpQueryFilter=NewQueryFilter
pQueryFilter.WhereClause="
SetpFeatureCursor=pFeatureClass.Search(pQueryFilter,False)
SetpFeature=pFeatureCursor.NextFeature
DoWhileNotpFeatureIsNothing
'
MoreOperations
Loop
SelectFeatures
1.3如何编辑记录
本例实现的是如何修改FeatureClass中某条记录(Feature)的值。
通过IFeatureClass.Update方法获得可修改记录的IFeatureCursor接口对象,使用IFeatureCursor.NextFeature方法获得Ifeatur接口对象,修改其属性值,通过IFeatureCursor.UpdateFeature方法提交IFeature修改内容。
主要用到IFeatureCursor接口
函数OpenFeatureClass获得当前激活的Map中第一层的IFeatureClass接口对象。
函数EditFeature修改pFeatureClass中第一条记录的第七个字段的值。
PrivateFunctionEditFeature(pFeatureClassAsIFeatureClass)AsBoolean
EditFeature=False
If(pFeatureClassIsNothing)Then
SetpFeatureCursor=pFeatureClass.Update(Nothing,False)
If(NotpFeatureIsNothing)Then
pFeature.Value(6)="
NewPlace"
pFeatureCursor.UpdateFeaturepFeature
修改成功"
EditFeature=True
Else
修改失败"
PrivateFunctionOpenFeatureClass()AsIFeatureClass
SetOpenFeatureClass=Nothing
SetOpenFeatureClass=pFeatureClass
DimpFeatureClassAsIFeatureClass
SetpFeatureClass=OpenFeatureClass()
EditFeaturepFeatureClass
1.5如何增加记录
本例要实现的是如何在FeatureClass中新增一条记录(Feature)。
通过IFeatureClass.Insert方法获得可插入记录的游标IFeatureCursor,然后使用IFeatureClass.CreateFeatureBuff方法获得IFeatureBuffer接口实例,使用IFeatureCursor.InsertFeature方法插入记录。
主要用到IFeatureCursor接口。
函数InsertFeature在pFeatureClass中添加一条记录。
PrivateFunctionInsertFeature(pFeatureClassAsIFeatureClass)AsBoolean
DimpFeatureBufferAsIFeatureBuffer
DimnFeatureNumberAsInteger
InsertFeature=False
SetpFeatureCursor=pFeatureClass.Insert(True)
SetpFeatureBuffer=pFeatureClass.CreateFeatureBuffer
nFeatureNumber=-1
pFeatureBuffer.Value(6)="
InsertLand"
nFeatureNumber=pFeatureCursor.InsertFeature(pFeatureBuffer)
If(nFeatureNumber<
>
-1)Then
添加了第"
nFeatureNumber&
条记录"
InsertFeature=True
添加失败"
InsertFeaturepFeatureClass
1.6如何删除记录
本例要实现的是如何在FeatureClass中删除一条记录(Feature)。
获得游标IFeatureCursor,然后定义IFeature接口对象,并获得要删除的记录,最后使用IFeature.Delete方法删除记录。
主要用到IFeature接口和IFeatureCursor接口。
函数DeleteFeature删除PLACENAME字段值为”InsertLand”的所有记录。
PrivateSubDeleteFeature(pFeatureClassAsIFeatureClass)
DimpQueryFilterAsIQueryFilter
PLACENAME='
InsertLand'
nFeatureNumber=0
pFeature.Delete
nFeatureNumber=nFeatureNumber+1
Delete "
Features"
DeleteFeaturepFeatureClass
1.7如何纪录排序(ITableSort)
本例要实现的是如何将一个FeatureClass中的数据按某字段的值进行排序。
定义ITableSort接口对象,并用TableSort类实现之,设置排序所用到的字段、排序方式(升序或降序)以及排序的数据源,然后使用ITableSort.Sort方法进行排序。
主要用到ITableSort接口。
函数SortFeatures按照pFeatureClass的第五个字段值对pFeatureClass的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 GeoDataBase2
![提示](https://static.bdocx.com/images/bang_tan.gif)