cas
cas
路人甲
路人甲
  • 注册日期2003-08-21
  • 发帖数3
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3142回复:9

请教VB+AO对多边面积量算?

楼主#
更多 发布于:2003-10-22 22:57
图层为经纬度坐标,计算多边形面积时用IArea接口获取的面积都小于1,如何换算成单位为平方米?<img src="images/post/smile/dvbbs/em09.gif" />
喜欢0 评分0
rainsnow
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数21
  • QQ
  • 铜币178枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-10-29 11:49
转换投影坐标。参考:
'--------------------------------------------------------------------------
'目的:TransCoordsEx说明:转地理坐标到投影坐标
'输入:pGeo--要转换的地理实体
'输出:IGeometry(转换后的)
'作者:
'日期:2003.08.20
'--------------------------------------------------------------------------
Function TransCoordEx(pGeo As IGeometry2, lngFromGeoCS As Long, lngToProjCS As Long) As IGeometry2
    Dim pGCS1 As IGeographicCoordinateSystem
    Dim pSpRef1 As ISpatialReference
    Dim pSpRFc1 As SpatialReferenceEnvironment
    Dim pPCS2 As IProjectedCoordinateSystem
    Dim pSpRef2 As ISpatialReference
    Dim pSpRFc2 As SpatialReferenceEnvironment
    On Error Resume Next
    
    Set pSpRFc1 = New SpatialReferenceEnvironment
    'Set pGCS1 = pSpRFc1.CreateGeographicCoordinateSystem(esriSRGeoCS_WGS1984)
    Set pGCS1 = pSpRFc1.CreateGeographicCoordinateSystem(esriSRGeoCS_Krasovsky1940)
  
    Set pGCS1 = pSpRFc1.CreateGeographicCoordinateSystem(lngFromGeoCS)
    Set pSpRef1 = pGCS1
    
    ' Project to RijksDriekhoek
    Set pSpRFc2 = New SpatialReferenceEnvironment
    Set pPCS2 = pSpRFc2.CreateProjectedCoordinateSystem(lngToProjCS)
'    Set pPCS2 = pSpRFc2.CreateProjectedCoordinateSystem(g_pMap.SpatialReference.FactoryCode)
   Set pPCS2 = pSpRFc2.CreateProjectedCoordinateSystem(esriSRProjCS_Beijing1954GK_20)
    
    Set pSpRef2 = pPCS2
    '?????????????????????????????????
    Dim pGeoTrans As IGeoTransformation
    Dim pSpatRefFact As ISpatialReferenceFactory

    Set pSpatRefFact = New SpatialReferenceEnvironment
    Set pGeoTrans = pSpatRefFact.CreateGeoTransformation(esriSRGeoTransformation_Amersfoort_To_WGS1984)
    pGeo.ProjectEx pPCS2, esriTransformForward, pGeoTrans, 0, 0, 0
  
   Set TransCoordEx = pGeo
    Set pGCS1 = Nothing
    Set pSpRef1 = Nothing
    Set pSpRFc1 = Nothing
    Set pPCS2 = Nothing
    Set pSpRef2 = Nothing
    Set pSpRFc2 = Nothing
    Set pGeoTrans = Nothing
    Set pSpatRefFact = Nothing
    Set pGeo = Nothing
End Function
举报 回复(0) 喜欢(0)     评分
rainsnow
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数21
  • QQ
  • 铜币178枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-10-29 11:54
调用方法为:
...
Set pFeaCursor = pFClass.Search(Nothing, False)
Set pFeature = pFeaCursor.NextFeature
Dim pGeo As IGeometry2
Dim pGeo2 As IGeometry2
 Dim dblArea As Double
 Dim pArea As IArea
 While Not pFeature Is Nothing
     Set pRow = pFeature
     'Set pGeo = TransCoords(pFeature.Shape, 4024, 21420)
     Set pGeo = pFeature.Shape
     Set pGeo2 = TransCoordEx(pGeo, 4024, 21420)
     Set pArea = pGeo2
     dblArea = pArea.Area
     pRow.Value(pRow.Fields.FindField(strAreaFld)) = dblArea
     pRow.Store
  Set pFeature = pFeaCursor.NextFeature
 Wend
  pWorkspaceEdit.StopEditOperation
 pWorkspaceEdit.StopEditing True
以上只供参考
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5917
  • QQ14265545
  • 铜币29669枚
  • 威望217点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
3楼#
发布于:2003-10-29 20:47
rainsnow
好弓虽啊
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2003-10-29 21:45
好贴!支持
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
wizzard
路人甲
路人甲
  • 注册日期2003-10-29
  • 发帖数29
  • QQ
  • 铜币210枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2003-10-30 11:38
举报 回复(0) 喜欢(0)     评分
tzsheng
路人甲
路人甲
  • 注册日期2003-11-05
  • 发帖数47
  • QQ
  • 铜币81枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2003-11-11 09:25
支持
举报 回复(0) 喜欢(0)     评分
cafecat
路人甲
路人甲
  • 注册日期2003-07-29
  • 发帖数375
  • QQ
  • 铜币894枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2003-11-11 09:48
强人
http://3s2go.blogspot.com/
举报 回复(0) 喜欢(0)     评分
gaomincyh
路人甲
路人甲
  • 注册日期2003-12-04
  • 发帖数18
  • QQ
  • 铜币54枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2003-12-04 16:47
好,不错
举报 回复(0) 喜欢(0)     评分
sulh-000
路人甲
路人甲
  • 注册日期2005-03-10
  • 发帖数70
  • QQ
  • 铜币242枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-04-04 03:35
<img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部