Dear Apache SIS developers, I am currently using the Apache SIS implementation of Hotine Oblique Mercator (variant B) together with the EPSG dataset 9.5.4<epsg-registry.org> to transform coordinates from WGS84 to EPSG:2056. For example, (46.218, 9.584) -> (2765526.380321678, 1120768.5597209763). I compared the transformed coordinates with the results obtained from epsg.io<http://epsg.io/transform#s_srs=4326&t_srs=2056&x=9.5840000&y=46.2180000> and there is a difference of about 4 cm in the x coordinate. I also tried the Hotine Oblique Mercator (variant A) to transform coordinates from WGS84 to EPSG:26731 and the results (2989681.1749542374, 1436932.9791579489) are similar to the ones provided by epsg.io<http://epsg.io/transform#s_srs=4326&t_srs=26731-1176&x=-132.1920000&y=55.7580000>.
I looked at the implementation of ObliqueMercator<https://github.com/apache/sis/blob/geoapi-4.0/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ObliqueMercator.java> and compared the formulas to the ones mentioned in IOGP Publication 373-7-2 – Geomatics Guidance Note number 7, part 2 – August 2018 (Coordinate Conversions & Transformations including Formulas). Could you please tell me why the methods ObliqueMercator.transform and ObliqueMercator.inverseTransform do not consider the differences between variant A and variant B described in the mentioned document (see Page 60-61 Forward case – computation of u and Reverse case – computation of v’ and u’). Could this cause the differences between the coordinates transformed with Apache SIS and the ones obtained from espg.io which I mentioned before? Thank you in advance! Best regards, Andreea Plocon
