As I understand it, a datum transform (e.g. urn:ogc:def:coordinateOperation:EPSG::1241
) based on a grid interpolation method, e.g. NADCON, is undefined outside of the grid of points. Therefore the lat/long of Mexico city as expressed in NAD 1927 cannot be converted to WGS 1984 by way of this NADCON conversion -- it's not in the United States.
If you call the ESRI projection engine directly (pe.dll#pe_geog1_to_geog2
), it simply doesn't transform the coordinates outside of the NADCON grid, though does return a code reminding you that this has happened. (The return code is the # of points transformed, which if less than the # of points you passed in is a sign of trouble.)
My guess is that (most?) everywhere else in the ESRI stack, this return code is ignored, and the transform is simply left as effectively zero outside of the grid area.
This might be as good an answer as any. What should we be doing instead? In our code at the moment we throw an exception, but this is a contagious and awful thing as it means people looking at studies using this transform can't zoom out past a certain extent.