Как определить, какое esriTransformDirection нам нужно использовать в ArcObject IGeometry5 ProjectEx
Я работаю над проектом, в котором мне нужно вычислить форму баллов на CRS для другого, но, поскольку мы исходный и целевой CRS, определяются только во время выполнения.
ISpatialReference source = GCS_North_American_1983
ISpatialReference target = UTM Zone 13 North (108 W - 102 W Longitude)
IEnvelope extent = rasterLayer.VisibleExtent;
Console.WriteLine(extent.XMax); == -97.815540361118
Console.WriteLine(extent.XMin); == -102.045540576002
Console.WriteLine(extent.YMax); == 39.933228902485
Console.WriteLine(extent.YMin); == 37.113228759229
IGeoTransformation geoTransformation = "NAD_1927_To_NAD_1983_NADCON"
geoTransformationOperationSet.Set(esriTransformDirection.esriTransformForward, geoTransformation);
geoTransformationOperationSet.Set(esriTransformDirection.esriTransformReverse, geoTransformation);
// Так что нам нужно идти в обратном порядке. поскольку источник находится в NAD83, и Цель находится в NAD27. и возвращает правильные результаты, совпадающие с ArcMap, но в дальнейшем результаты выдаются неправильно
geometry.ProjectEx(target, esriTransformDirection.esriTransformReverse, geoTransformation, false, 0.0, 0.0);
Console.WriteLine(extent.XMax); == 1138797.89197912
Console.WriteLine(extent.XMin); == 752503.366222885
Console.WriteLine(extent.YMax); == 4444925.18943959
Console.WriteLine(extent.YMin); == 4111314.85519851
если мы сделаем прямое преобразование, вернем неверный результат.
1138738.17611084
752424.161510695
4444923.04572637
4111317.16066915
Итак, как я могу определить, какое направление нам нужно использовать? Как вперед / назад. Есть ли какой-нибудь способ, которым мы можем выяснить, используя arcobject API return, использовать fwd или reverse Я посмотрел в IGeoTransformation
но безуспешно, есть много разных предопределенных GeoTransformation, которые можно использовать как в fwd, так и в обратном порядке, если они поддерживаются.
Благодарю.