I am using QGIS v2.18.7. In the Print Composer I have turned on the "Draw coodinates" option "Decimal with suffix" to add these to my map.
However, I need to add a space between the degrees symbol and the suffix.
For example, the default for "Decimal with suffix" is 10°S
while I would like (due to journal requirements) to have: 10° S
.
I see there is a custom option, but it I can't figure out how to get this output?
Answer
In the print composer, after having added a map and enable the grid display under grids
-->Draw grid
-->Draw coordinates
, you can select the custom
option to specify the formatting. To enter your particular specifications for the coordinates, you need to click on the greek letter e symbol (epsilon) on the right.
You would then make use of the @grid_number
and @grid_axis
variables. Let's remember that for each coordinate to be printed, the custom format function will be called. @grid_number
contains the value (number) to be printed while @grid_axis
indicates if it is on the x or y axis. So, a negative value means South (for y) or West (for x). A positive means North or East.
The format function would start by displaying the absolute value with 2 decimals (it's up to you) - if any -, then adds the space and degree sign. It then forks it logic depending on whether the function is called for the X or Y axis (written as a case
statement for readability). For each case, it again forks it logic depending on whether it is a negative or positive value. Finally, for each of the 4 combination (axis + sign), it adds the N/S/E/W letter to the label to be returned.
abs(format_number( @grid_number ,2))
|| ' °'
|| CASE
WHEN @grid_axis = 'x'
THEN
IF (@grid_number > 0, 'E' , 'W')
ELSE
IF (@grid_number > 0, 'N' , 'S')
END
No comments:
Post a Comment