3

« **on:** May 07, 2019, 04:26:02 PM »
Hi everyone,

Within my automated pipeline, I've developed a method that calculate and set the smallest bounding box which included a "project contour" polygon.

The calculation has been separated in 3 steps :

- Set the bounding box center

- Set the bounding box size

- Set the bounding box orientation

Everything works very fine until today ... when I decided to include coordinates system in my pipeline.

Indeed, in "Local Coordinates" (*'LOCAL_CS["Local Coordinates",LOCAL_DATUM["Local Datum",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]]'*), everything is OK,

but when I use projected coordinates system (For exemple EPSG::3946 in France), the box orientation doesn't work anymore (Center and size are OK !)...

Here is the following code for bounding box orientation setting (Where vertex_a / vertex_b / vertex_c are the corners of my minimum rotated rectangle that include my polygon) :

` cos_teta = (vertex_c.x - vertex_a.x) / vertex_a.distance(vertex_c)`

sin_teta = (vertex_c.y - vertex_a.y) / vertex_a.distance(vertex_c)

__pseudo_region.rot = [[sin_teta, -cos_teta, 0],

[cos_teta, sin_teta, 0],

[0, 0, 1]]

chunk.region.rot = chunk.transform.matrix.rotation().inv() * __pseudo_region.rot

After some investigation, my pseudo_region hasn't changed, so the problem is coming from the chunk rotation matrix (*chunk.transform.matrix.rotation()*).

I cannot understand how chunk.crs has inlfuenced the chunk.transform matrix... and have no idea how to fix the problem...

Regards