Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#355 closed defect (fixed)

ps.map generates invalid postscript when vlegend item does not appear on map

Reported by: scottygamm Owned by: hamish
Priority: minor Milestone: 6.4.0
Component: Ps.map Version: 6.3.0
Keywords: Cc: grass-dev@…, casey.vandenberg@…, bcovill@…
CPU: x86-32 Platform: MSWindows CygWin

Description

I have a map control file that generates several (21) vareas with pattern fill and defines label and lpos entries for the legend. As it happens, one of those vareas does not appear on the map area. As a result, the postscript output omits the dictionary entry for that pattern. When vlegend generates the legend output, it attempts to reference the missing pattern definition (of the form APATTEPSnn) and applications that try to render the postscript fail in various ways. Workaround is to omit the vareas causing the problem. I have not included files but can provide them if needed.

Change History (6)

comment:1 in reply to:  description Changed 11 years ago by neteler

Replying to scottygamm: On Tue, Nov 4, 2008 at 4:16 PM, Bob Covill <bcovill tekmap ns.ca> wrote: I encountered the same problem a couple of weeks ago. I was able to get around it by adding the following to ps_vlegend.c around line 172 ...

  pat_save ( PS.fp, vector.layer[i].pat, pat);

Insert this line after

sprintf ( pat, "APATTEPS%d", i);

to ensure the pattern definition is saved.

Hope this helps.

Bob

comment:2 Changed 11 years ago by hamish

Cc: grass-dev@… added
Owner: changed from grass-dev@… to hamish
Status: newassigned

comment:3 Changed 11 years ago by hamish

Component: defaultps.map

comment:4 Changed 11 years ago by hamish

Milestone: 6.3.16.4.0

comment:5 Changed 11 years ago by hamish

Cc: casey.vandenberg@… bcovill@… added
Resolution: fixed
Status: assignedclosed

patch applied in SVN, thanks!

I also fixed the vector legend bug reported by Casey Vandenberg on Nov 20 where it wouldn't let you place the vector legend to the left of the map box. Now you can go as far as the left margin. The right side of the legend (for multicolumn) is still rather unconstrained, I've left it as not starting a new column past the right side of the map box, which seems like a fair compromise. Feel free to post a patch doing that better if you can figure out how.. I don't think it is easily possible to improve on the current way.

Hamish

comment:6 in reply to:  5 Changed 11 years ago by hamish

Replying to hamish:

I also fixed the vector legend bug reported by Casey Vandenberg on Nov 20 where it wouldn't let you place the vector legend to the left of the map box. Now you can go as far as the left margin. The right side of the legend (for multicolumn) is still rather unconstrained, I've left it as not starting a new column past the right side of the map box, which seems like a fair compromise. Feel free to post a patch doing that better if you can figure out how.. I don't think it is easily possible to improve on the current way.

actually it was easy. I've now added a new vlegend "span" command to let you set the legend column spacing.

Hamish

Note: See TracTickets for help on using tickets.