|
[GRASSLIST:4000] Re: ps.map grid in Lat/Lon: msg#00207gis.grass.user
is it possible just to recompile ps.map? regards, Florian On Friday, July 23, 2004, at 08:18AM, Hamish <hamish_nospam@xxxxxxxxx> wrote: >> > i'm want to overlay a map of a Lat/Lon location with a grid that >> > has less than 1 degree spacing. >> > is that possible? (geogrid is not available for lat/lon and if i use >> > >> > grid nothing happens when i choose a spacing less than 1) >> > >> I had a similar problem back with GRASS 5.0.0. I was told at the time >> >> that ps.map did not support floating point grids, hence the problem >> with lat-long locations. I don't know if it has been fixed, but a >> simple workaround is to make a vector grid with v.mkgrid and just >> display that along with whatever else you want with ps.map. Thanks to >> >> whomever suggested that to me. > > >The attached patch adds this to ps.map in GRASS 5.7. > >Before trying that though you might try the "geogrid" command [5.7 >only], which will draw a lat/lon grid over a non-Lat/Lon location map. > >I haven't put this in CVS as it needs some checking over to make sure it >doesn't cause other problems (eg it tests grid==0 when 0 is now floating >point). Maybe someone with a keener eye for C than me can comment. >It might be better to just work on getting geogrid to do lat/lon? > > >Results on the map look great, formats text into deg:minutes, but you >may need to use a lot of precision to get 5-minute ticks to round >correctly. e.g., for 5' use something like "grid 0.08333333333333" > >This makes the mapinfo command look pretty wonky for anything smaller >than 0.25 of a degree though. I guess G_format_easting() could fix that? > > >e.g., for the global lat/lon dataset: [zoom in] > >ps.map out=test.ps << EOF >raster nations >grid 0.25 > numbers 1 > end >mapinfo > where 0.5 8.5 > end >end >EOF >gv test.ps > > > >Hamish > >Index: main.c >=================================================================== >RCS file: /home/grass/grassrepository/grass51/ps/ps.map/main.c,v >retrieving revision 1.6 >diff -u -r1.6 main.c >--- main.c 27 Jan 2004 12:59:16 -0000 1.6 >+++ main.c 22 Jul 2004 23:21:38 -0000 >@@ -625,7 +625,7 @@ > { > PS.grid = -1; > PS.grid_numbers = 0; >- sscanf(data, "%d", &PS.grid); >+ sscanf(data, "%lf", &PS.grid); > if (PS.grid < 0) > { > PS.grid = 0; >Index: ps_info.h >=================================================================== >RCS file: /home/grass/grassrepository/grass51/ps/ps.map/ps_info.h,v >retrieving revision 1.3 >diff -u -r1.3 ps_info.h >--- ps_info.h 27 Jan 2004 12:59:16 -0000 1.3 >+++ ps_info.h 22 Jul 2004 23:21:38 -0000 >@@ -41,12 +41,12 @@ > int do_colortable; > int do_scalebar; > int num_psfiles; >- int grid, grid_color, grid_numbers, grid_numbers_color, grid_fontsize; >+ int grid_color, grid_numbers, grid_numbers_color, grid_fontsize; > float grid_cross; >+ double grid, grid_width, geogrid_width; > char geogridunit[64]; > int geogrid, geogrid_color, geogrid_numbers; > int geogrid_numbers_color, geogrid_fontsize; >- double grid_width, geogrid_width; > int do_outline, outline_color; > int cell_fd; > int row_delta, col_delta; >Index: do_grid.c >=================================================================== >RCS file: /home/grass/grassrepository/grass51/ps/ps.map/do_grid.c,v >retrieving revision 1.2 >diff -u -r1.2 do_grid.c >--- do_grid.c 10 Jul 2003 17:59:32 -0000 1.2 >+++ do_grid.c 22 Jul 2004 23:21:39 -0000 >@@ -109,7 +109,8 @@ > { > double g; > char num_text[50]; >- int grid, vy, vx, hy=0, hx=0; >+ double grid; >+ int vy, vx, hy=0, hx=0; > int first, len, x, y, last_bottom, last_right; > int rounded_grid, margin; > >@@ -120,7 +121,7 @@ > rounded_grid = 1; > if (PS.w.proj != PROJECTION_LL) > { >- sprintf(num_text, "%d", PS.grid); >+ sprintf(num_text, "%lf", PS.grid); > len = strlen(num_text); > while (len-- && num_text[len] == '0') rounded_grid *= 10; > if (rounded_grid == 10) rounded_grid = 1; >Index: map_info.c >=================================================================== >RCS file: /home/grass/grassrepository/grass51/ps/ps.map/map_info.c,v >retrieving revision 1.1 >diff -u -r1.1 map_info.c >--- map_info.c 26 Mar 2003 15:56:15 -0000 1.1 >+++ map_info.c 22 Jul 2004 23:21:39 -0000 >@@ -47,7 +47,7 @@ > { > k = 5.5; > sprintf(buf, >- "%d %s", PS.grid, G_database_unit_name(PS.grid != 1)); >+ "%g %s", PS.grid, G_database_unit_name(PS.grid != 1)); > fprintf(PS.fp, "(%s) SW pop /t2 XD\n", buf); > fprintf(PS.fp, "t1 t2 lt {/t1 t2 def} if \n"); > } >@@ -74,7 +74,7 @@ > if (PS.grid) > { > sprintf(buf, >- "%d %s", PS.grid, G_database_unit_name(PS.grid != 1)); >+ "%g %s", PS.grid, G_database_unit_name(PS.grid != 1)); > show_text(x, y - dy, "GRID:"); > fprintf(PS.fp, "(%s) sx %.1f MS\n", buf, y - dy); > y -= dy; > > |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [GRASSLIST:3999] texture analysis and r.out.tiff output: 00207, Murray Richardson |
|---|---|
| Next by Date: | [GRASSLIST:4001] Re: ps.map grid in Lat/Lon: 00207, Hamish |
| Previous by Thread: | [GRASSLIST:3999] texture analysis and r.out.tiff outputi: 00207, Murray Richardson |
| Next by Thread: | [GRASSLIST:4001] Re: ps.map grid in Lat/Lon: 00207, Hamish |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |