#3016 closed enhancement (fixed)
Add option to set scalebar length
Reported by: | annakrat | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | 7.2.0 |
Component: | Display | Version: | unspecified |
Keywords: | d.barscale, gsoc2016, cartography | Cc: | |
CPU: | Unspecified | Platform: | All |
Description
Currently the scalebar automatically selects the right size. It would be nice to be able to customize the length. Also adding custom label would be useful, for example for cases when I don't want 'meters' but only 'm'.
Attachments (3)
Change History (13)
follow-up: 2 comment:1 by , 9 years ago
Version: | → unspecified |
---|
by , 8 years ago
Attachment: | d.barscale.diff added |
---|
Added options length and segment to customate barscale. Added -u flag for display unit symbol/name.
follow-up: 3 comment:2 by , 8 years ago
Replying to wenzeslaus:
I think the size should be specified in map units, for example user can say
size=250
to get 250m scale bar. This seems like a simple and actually a desired option. What are the units there probably depend on the rest of the implementation or interface of d.barscale. With the current implementation it would be probably meters by default but it should be feet when the-f
is used.
I added optionlength
, so the size can be specified in map units. By defaults in meters, with -f
flag in feet. I'm not sure it's the best solution. If user wants a barscale of size let's say 150 miles he has to convert 150 miles into feet.
by , 8 years ago
Attachment: | d.barscale.2.diff added |
---|
Updated patch with flag -n to display small north-arrow symbol next to barscale.
follow-up: 6 comment:3 by , 8 years ago
Replying to lazaa:
Replying to wenzeslaus:
I think the size should be specified in map units, for example user can say
size=250
to get 250m scale bar. This seems like a simple and actually a desired option. What are the units there probably depend on the rest of the implementation or interface of d.barscale. With the current implementation it would be probably meters by default but it should be feet when the-f
is used.I added option
length
, so the size can be specified in map units. By defaults in meters, with-f
flag in feet. I'm not sure it's the best solution. If user wants a barscale of size let's say 150 miles he has to convert 150 miles into feet.
I was thinking it would be good to add new option units
with options meters, kilometers, feet and miles instead of the flag -f
. This flag would have to stay there for compatibility reasons but would be marked obsolete. By default it would use map units, see m.measure for example.
Also having option to set custom label (overriding the unit) would enable working in XY location with mm for example. I think it would bring more flexibility comparing to the -u
flag, so users could choose whether they want 'meters' (current default) or 'm' or name of the units in other languages.
follow-up: 5 comment:4 by , 8 years ago
All of Adam's patches concerning d.barscale give a lot of fails when trying to apply them to trunk. Maybe this is linked to the recent running of the indent script on the version in trunk ?
comment:5 by , 8 years ago
Replying to mlennert:
All of Adam's patches concerning d.barscale give a lot of fails when trying to apply them to trunk. Maybe this is linked to the recent running of the indent script on the version in trunk ?
I think so. He used indent script on his working copy, so he has a lot of whitespace changes. So I decided to commit the whitespace changes separately. Adam should upload the new patches just with the real code changes. I am not sure what's the best way to get rid of whitespace changes in a patch for now, probably apply it to older version of the file and create a new diff without whitespace or use meld.
comment:6 by , 8 years ago
Replying to annakrat:
Replying to lazaa:
Replying to wenzeslaus:
I think the size should be specified in map units, for example user can say
size=250
to get 250m scale bar. This seems like a simple and actually a desired option. What are the units there probably depend on the rest of the implementation or interface of d.barscale. With the current implementation it would be probably meters by default but it should be feet when the-f
is used.I added option
length
, so the size can be specified in map units. By defaults in meters, with-f
flag in feet. I'm not sure it's the best solution. If user wants a barscale of size let's say 150 miles he has to convert 150 miles into feet.I was thinking it would be good to add new option
units
with options meters, kilometers, feet and miles instead of the flag-f
. This flag would have to stay there for compatibility reasons but would be marked obsolete. By default it would use map units, see m.measure for example.
Why the flag -f
would have to stay? If I add option units
it's not necessary anymore, is it?
Also having option to set custom label (overriding the unit) would enable working in XY location with mm for example. I think it would bring more flexibility comparing to the
-u
flag, so users could choose whether they want 'meters' (current default) or 'm' or name of the units in other languages.
comment:7 by , 8 years ago
Copied here from ML due to trac problems:
On Wed, Jun 1, 2016 at 6:29 PM, Anna Petrášová wrote:
The flag should stay there (and work as before) to keep backwards compatibility until grass 8 is released. If you remove it, some user scripts will break.
comment:8 by , 8 years ago
Committed in r68570 with small modifications.
Known issue is that when using -f
, label
is ignored.
Testing is very welcome.
comment:10 by , 8 years ago
Milestone: | 7.3.0 → 7.2.0 |
---|
I think the size should be specified in map units, for example user can say
size=250
to get 250m scale bar. This seems like a simple and actually a desired option. What are the units there probably depend on the rest of the implementation or interface of d.barscale. With the current implementation it would be probably meters by default but it should be feet when the-f
is used.