[GRASS-dev] ps.map catrography [was Re: grass-dev Digest, Vol 2, Issue 19]

Hamish hamish_nospam at yahoo.com
Fri Jun 9 05:33:16 EDT 2006


David Finlayson wrote:
> #2. is a complete face-lift to the map production capabilities of
> #GRASS.
> 
> I recently designed several large-format maps for a public display of
> our mapping capabilities (coastal USGS). I found that I didn't have
> the control or flexibility I needed in GRASS to do the maps the way I
> wanted. ps.map just isn't very powerful yet.

eh? how so? I have resorted to custom modifications to the C code and
editing the .ps file in vi from time to time, but where does it lack
power? (I take it you mean features, not control)


David:
> I regressed to ArcGIS/Illustrator for the first time in over a year :(
> 
> I think it was possible, just too difficult to script the rgb > his
> transformations in the short time I had available. Also the map
> decorations I needed just weren't available in GRASS.

File a wish or two. Maybe something is low hanging fruit.
What map decorations did you want? Could be inserted as .eps? (.ttf->.eps?)
as display icons?


Michael Barton wrote:
> The main way to do nice output has been to dump GRASS display to a
> graphics file and work on it in that. This is not such a bad model,
> given that very nice graphics layout and high-quality decorations
> requires quite a bit of programming to achieve. So it's not that bad
> an idea to leave it to InkScape or similar program to do that.

To repeat myself: the d.* commands are good for presentation and web
graphics. For the printed page ps.map shines. A common UI for both end
systems would be nice.


Michael:
> Improvements to the first method are not closely tied to the GUI, but
> require more enhancements to ps.map

All are encouraged to file ps.map wishes as needed..

Michael:
> rewrite the GRASS decoration display modules into TclTk (all were
> written to render in what is now considered a low-resolution display).
> If we are switching to a new GUI platform, I'd rather put the effort
> into doing nice display decorations in the new platform.

d.graph is now in good shape. It can take either map or display
coordinates to draw; rotate & change the width of text; display all
symbols, etc etc. The gui can just write a command file and let d.graph
take care of the rest.

The analogue is g-ps.map by Jachym Cepicky (or equivalent)
  http://les-ejk.cz/?cat=gpsmap
There is no reason that a module like this couldn't create a ps.map
template or a d.graph template depending on a radio button.

Same as a *.digit program should be able to make a v.in.ascii or 
r.in.poly format command file depending on the user's choice.


Trevor Wiens wrote:
> Cartography is a weakness throughout GIS in general, not only GRASS.
> The fact that it is still normal to pull GIS output into drawing
> programs to make it acceptable is an embarrassment. However to
> generate professional output efficiently, both scripting and
> interactive controls are needed.

I agree. Exactitude is key for publication quality stuff. A GUI is great
for setup but you'll need to hack the resulting LaTEX / XML / ps.map
file to get it "just right".

Trevor:
> but labels absolutely require both a
> scripting capability to allow for automated label placement algorithms
> (eg simulated annealing) and then an interactive environment to catch
> what is lost and possibly allow for drawing program features like
> bezier curves and fitting text to curves. In addition, these labels
> must be defined in terms to the size of the printed document but
> linked to the underlying geography to allow for expansion or shifting
> of the underlying geographic region without having to start over. What
> is needed is a environment where the output is "What You See Is
> EXACTLY What You Get" not "WYSI sort of WYG". To me this means
> interactive display and editing of postscript; this AFAIK is not
> trivial. 

Not trivial, but I think we already have all this mostly done!

* auto-label extraction and placement by v.label
* labels both rotated (-a) and curved (-c) to vector lines: v.label
* text sized by pt size or by map scale: ps.map's text "size" or "fontsize",
   same options in v.label

As LyX puts it: "WYSIWYW" (What you see is what you want)




Hamish




More information about the grass-dev mailing list