ArcGIS Developer Help  (Geometry)    

Project Example

[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 Language Filter in the upper-left corner of the page.