4

I'm working with QGIS 3.10 under FreeBSD 12.1 and trying to use a North direction SVG arrow symbol which is controlled by an atlas. The atlas is driven by a set of map sheets arranged along a winding corridor.

example1

Each sheet has a fixed size and scale as well as the map is turned into a axis parallel chart by the sheet (atlas driven). For each sheet I defined a North arrow rotation parameter corresponding to map rotation ("Composer -> Item Properties -> North Arrow -> Image rotation").

example2

Unfortunately the size of the North arrow is automatically adopted for each rotation due to the corresponding rotated angular dependent bounding box ("Main Properties -> Resize Mode").

Example North Direction

example3

Example North-East Direction

example4

If I use of main "Properties -> Clip" (which I guess is the right parameter for a circular symbol which is centered an cannot be clipped), the rotation by the atlas is turned off.

Which parameter do I've to use get a rotated equal sized atlas controlled symbol under the "Composer -> Item Properties -> North Arrow" dialog.

5
  • Which is the parameter that you are using to change the orientation of the maps in the Atlas?
    – Val P
    Commented Mar 13, 2020 at 8:42
  • I've calculated a turn angle (with angular range control to prevent upside-down flipping) held in the attribute table for each sheet (SHEET.ANGLE_B). The ATLAS is controlled and sorted by the SHEET.ID. And the map is turned "Item Properties->Main Properties"->"Map Rotation" -> Expression(ANGLE_B) of the coverage layer (SHEET).
    – huckfinn
    Commented Mar 13, 2020 at 13:53
  • Ok. Try removing the sinc with the map in the Image orientation of the north arrow and use the same parameter in the Rotation as a variable. I tried to replicate your issue and seems to me that using this second way the arrow doesn't change in size. You can use in the expression the variable * @atlas_featureid * to recall the page.
    – Val P
    Commented Mar 13, 2020 at 13:57
  • Thanks VAL P that works fine for me. As you supposed I the removed "Image rotation -> sync" and use ( "North Arrow" -> "Item Properties -> "Rotation" -> EXPRESSION( ANGLE_B ) to get proper result. Could you provide an answer so I can mark "solve" for the question and upvote your answer?
    – huckfinn
    Commented Mar 13, 2020 at 14:20
  • Happy that works.
    – Val P
    Commented Mar 13, 2020 at 14:51

1 Answer 1

2

To solve your problem you can change the way to orientate the North arrow.

Considering that you are using a parameter to change the orientation of the pages of your Atlas, in the Item Proprieties of the north arrow, instead using the option Image Rotation > Sinc with map, try to use the option Rotation.

With the Sync with map option off, go in Rotation and here use as a variable the same parameter used for orientate the Atlas pages.

enter image description here

In the expression you can use the variable * @atlas_featureid * to recall the Atlas pages (and them ID).

In this way the north arrow change the orientation according with the page orientation without change in size.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.