Hi,
I'm trying to fix d.vect for use with lat/lon when the region traverses
180 degrees (centering the view on the pacific).
e.g. g.region w=0 e=360
d.vect includes code to only draw stuff which is actually on screen;
I've just patched the code to get all areas to show up[*], but am
stumbling on getting point data to work in a clean way.
[*] http://freegis.org/cgi-bin/viewcvs.cgi/grass51/display/d.vect/area.c.diff?r1=1.13&r2=1.15
Points:
grass51/display/d.vect/main.c line 414:
if ( level >= 2 && ( window.north < box.S || window.south > box.N ||
window.east < box.W || window.west > box.E ) )
{
fprintf (stdout,
"The bounding box of the map outside current region, nothing
displayed.\n");
} else {
Graceful logic eludes me at present. ideas?
thanks,
Hamish
ps - NVIZ crashes with:
Loading Data
ERROR: cell_values_d: xdr_double failed for index 86.
child process exited abnormally
or a malloc error when the region traverses 180 longitude and you are
using a degree-scaled map (i.e. meters/(60*1852.0)) with very small
values (eg -0.09 to 0.06).
any hints on getting the C part of NVIZ to work in a gdb based debugger?
(du jour: kdbg)
Ideally, NVIZ should automatically scale meters->deg (or better yet
deg*deg -> m) when PROJ==LL. Note the height, vertical exag., site icon
size, etc code also would need to be touched for the latter. People
using z=feet would still have problems, but it would be much better
than it is now.
(see r.shaded.relief &/or shade.rel.sh)