[Visual Basic 6.0]
Private Sub Test()
'Set up spatial references
Dim pSpatialReferenceEnv As SpatialReferenceEnvironment
Set pSpatialReferenceEnv = New SpatialReferenceEnvironment
Dim pFromSR As ISpatialReference
Set pFromSR = pSpatialReferenceEnv.CreateGeographicCoordinateSystem(esriSRGeoCS_NAD1983)
Dim pToSR As ISpatialReference
Set pToSR = pSpatialReferenceEnv.CreateProjectedCoordinateSystem(esriSRProjCS_NAD1983UTM_10N)
'Set up Point for transforming
Dim pT2D As ITransform2D
Set pT2D = CreatePoint(-122, 37)
Dim pPt As IPoint
Set pPt = pT2D
Set pPt.SpatialReference = pFromSR
pPt.Project pToSR
'Set up Comparison Point
'This is the point the transformation should result in
Dim pPt2 As IPoint
Set pPt2 = New Point
pPt2.PutCoords -121, 42
Set pPt2.SpatialReference = pFromSR
pPt2.Project pToSR
'Transform
Dim pA2D2 As IAffineTransformation2D2
Dim pA2D As IAffineTransformation2D
Dim pOrigin As IPoint
' Set up Affine Transformation
' MoveOrigin is at the same location as the Point to be transformed: Yields accurate results
Set pA2D2 = New AffineTransformation2D
pA2D2.Move 1, 5
Set pA2D = pA2D2
Set pOrigin = CreatePoint(-122, 37)
pA2D.MoveOrigin = pOrigin
Set pA2D.SpatialReference = pFromSR
pA2D.Project pToSR
Set pA2D.SpatialReference = pToSR
' Transform and report results
Debug.Print "----Using MoveOrigin at the same location as the Point to be transformed----"
Debug.Print "Before Trans, Point X:" & pPt.X & ", Y:" & pPt.Y
Debug.Print "A2D XTrans: " & pA2D.XTranslation & ", YTrans: " & pA2D.YTranslation
Debug.Print "A2D MoveOrigin X: " & pA2D2.MoveOrigin.X & ", Y: " & pA2D2.MoveOrigin.Y
pT2D.Transform esriTransformForward, pA2D
Debug.Print "After Trans, Point X:" & pPt.X & ", Y:" & pPt.Y
Debug.Print qaDoubleCompare(pPt.X, pPt2.X)
Debug.Print qaDoubleCompare(pPt.Y, pPt2.Y)
Debug.Print "Comparison, Point X:" & pPt2.X & ", Y:" & pPt2.Y
' Set up Affine Transformation
' MoveOrigin is at a slightly different location: Yields slightly inaccurate results
Set pA2D2 = New AffineTransformation2D
pA2D2.Move 1, 5
Set pA2D = pA2D2
Set pOrigin = CreatePoint(-125, 35)
pA2D.MoveOrigin = pOrigin
Set pA2D.SpatialReference = pFromSR
pA2D.Project pToSR
Set pA2D.SpatialReference = pToSR
' Transform and report results
Debug.Print "----Using MoveOrigin at a slightly different location----"
Debug.Print "Before Trans, Point X:" & pPt.X & ", Y:" & pPt.Y
Debug.Print "A2D XTrans: " & pA2D.XTranslation & ", YTrans: " & pA2D.YTranslation
Debug.Print "A2D MoveOrigin X: " & pA2D2.MoveOrigin.X & ", Y: " & pA2D2.MoveOrigin.Y
pT2D.Transform esriTransformForward, pA2D
Debug.Print "After Trans, Point X:" & pPt.X & ", Y:" & pPt.Y
Debug.Print qaDoubleCompare(pPt.X, pPt2.X)
Debug.Print qaDoubleCompare(pPt.Y, pPt2.Y)
Debug.Print "Comparison, Point X:" & pPt2.X & ", Y:" & pPt2.Y
End Sub
[Visual Basic .NET, C#, C++]
No example is available for Visual Basic .NET, C#, or C++. To view a Visual Basic 6.0 example, click the Language Filter button
in the upper-left corner of the page.