ArcMap VBA is used to calculate the value of the "satellite stereo ing" height field.

Source: Internet
Author: User
Private sub uibuttoncontrol1_click ()

Dim app as iapplication
Set APP = Application

Dim pmxdocument as imxdocument
Set pmxdocument = application. Document

Dim pmap as IMAP
Set pmap = pmxdocument. focusmap

Dim pfeaturelayer as ifeaturelayer
Set pfeaturelayer = pmap. layer (0)

Dim prasterlayer as irasterlayer
Set prasterlayer = pmap. layer (1)

Dim praster2 as iraster2
Set praster2 = prasterlayer. Raster

Dim pfeaturecursor as ifeaturecursor
Set pfeaturecursor = pfeaturelayer. featureclass. Search (nothing, false)

Dim pfeature as ifeature
Set pfeature = pfeaturecursor. nextfeature

Dim ppolygon as ipolympus gon
Dim parea as iarea
Dim pfields as ifields
Dim height as long
Dim elevation as long
Dim Ppoint as ipoint
Dim X as double
Dim y as double
Dim pixelvalue as Variant
Dim column as long
Dim row as long

While not pfeature is nothing

Set ppolygon = pfeature. shapecopy
Set parea = ppolygon
Set Ppoint = parea. Centroid
Set pfields = pfeature. Fields

X = Ppoint. x
Y = Ppoint. Y

Height = pfields. findfield ("height ")
Elevation = pfields. findfield ("elevation ")

Column = praster2.topixelcolumn (X)
Row = praster2.topixelrow (y)

Pixelvalue = praster2.getpixelvalue (0, column, row)

If pfeature. Value (elevation) <>-9999 then

Pfeature. Value (height) = ABS (cdbl (pixelvalue)-pfeature. Value (elevation ))
Else

Pfeature. Value (height) = 0
End if

Pfeature. Store
Set pfeature = pfeaturecursor. nextfeature
Wend

Msgbox "converted"

End sub

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.