laptop and a wrench

Error

IAffineTransformation2D3GEN::TransformPointsFF method returns incorrect results in ArcGIS 9.3.

Última publicación: August 25, 2014 ArcGIS for Desktop
Número de ID del error NIM052295
EnviadoDecember 22, 2009
Última modificaciónJune 5, 2024
Relacionado conArcGIS for Desktop
Versión encontrada9.3.1
Lenguaje del programaC#
EstadoWill Not Be Addressed

Información adicional

No Public Explanation

Solución alternativa

There is a workaround that can be used with the versions of the software that they have. Instead of accessing the TransformPointsFF method through the IAffineTransformation2D3GEN interface, they need to access it through the ITransformationGEN interface. I have verified that this works in a 931 debug build. I’ve attached the relevant portion of their sample code, with the modification applied in red.Please let me know if this works for them. Please forward my apologies to AED-SICAD and ESRI Germany for the problems caused by this. IAffineTransformation2D3GEN IAffineTransformation = new AffineTransformation2DClass(); IAffineTransformation.DefineFromControlPoints(ref fromPoints, ref toPoints); ITransformationGEN t = (ITransformationGEN)IAffineTransformation; double fromError = 0, toError = 0; for (int j = 0; j < fromPoints.Length; j++) { IAffineTransformation.GetControlPointError(j, ref fromError, ref toError); dataGridView1["ErrE", j].Value = ToString(fromError, 3); dataGridView1["ErrN", j].Value = ToString(toError, 3); } // Punkte sammeln/collect coordinate values to be transformed. List<double> pointsInList = new List<double>(); foreach (DataGridViewRow row in dataGridView2.Rows) { // Von/From points IPoint point1000 = new PointClass(); pointsInList.Add(ToDouble(row.Cells["Easting3"].Value as string, 0)); pointsInList.Add(ToDouble(row.Cells["Northing3"].Value as string, 0)); } // Transform double[] pointsIn = pointsInList.ToArray(); double[] pointsOut = new double[pointsIn.Length]; // Initialize with an arbitrary value for (int j = 0; j < pointsOut.Length; j++) pointsOut[j] = j; //IAffineTransformation.TransformPointsFF(esriTransformDirection.esriTransformForward, ref pointsIn, ref pointsOut); t.TransformPointsFF(esriTransformDirection.esriTransformForward, ref pointsIn, ref pointsOut);

Pasos para reproducir

ID del error: NIM052295

Software:

  • ArcGIS for Desktop

Recibir notificaciones cuando cambie el estado de un error

Descargar la aplicación de soporte de Esri

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga