[GRASS-SVN] r63799 - in grass/branches/releasebranch_7_0: . display/d.geodesic display/d.rhumbline
svn_grass at osgeo.org
svn_grass at osgeo.org
Sun Dec 28 05:30:25 PST 2014
Author: neteler
Date: 2014-12-28 05:30:25 -0800 (Sun, 28 Dec 2014)
New Revision: 63799
Modified:
grass/branches/releasebranch_7_0/
grass/branches/releasebranch_7_0/display/d.geodesic/d.geodesic.html
grass/branches/releasebranch_7_0/display/d.geodesic/d_geodesic.png
grass/branches/releasebranch_7_0/display/d.geodesic/local_proto.h
grass/branches/releasebranch_7_0/display/d.geodesic/main.c
grass/branches/releasebranch_7_0/display/d.geodesic/plot.c
grass/branches/releasebranch_7_0/display/d.rhumbline/main.c
Log:
d.geodesic: hardcoded miles changed to units choice; new screenshot (related to trac #2417); d.rhumbline: minor sync with d.geodesic (trunk, r63798)
Property changes on: grass/branches/releasebranch_7_0
___________________________________________________________________
Modified: svn:mergeinfo
- /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62190,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750-62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62828,62831,62838,62845,62847,62850,62856,62879,62881,62886,62904,62907-62908,62910,62912,62914,62916,62918,62920,62925,62932-62933,62935,62940,62942,62944-62946,62949,62955-62956,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,
63076,63079,63081,63083,63085,63087,63089,63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63160,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209,63216,63220-63221,63224,63227,63240,63246,63250,63255,63259,63261,63275-63276,63279,63281,63283,63287,63290,63292,63297,63302,63304-63307,63315,63319,63327,63330,63332,63339,63342,63345,63361-63363,63367,63379,63389,63391,63393,63402,63408-63409,63416-63417,63425,63427,63429,63431,63433,63448,63451,63453,63457,63459,63464-63470,63473,63482,63497,63505,63508,63510,63515,63521-63524,63526,63536-63537,63551-63552,63554,63556,63558-63559,63562,63570,63576,63582,63589-63593,63602,63604,63608-63609,63616,63618,63624,63626,63628,63630,63634,63639,63642,63644,63650,63652,63656,63679,63685,63689,63691,63693,63695,63698,63700-63702,63704,63706-63707,63709,63711,63713,63715,63717-63718
,63721-63727,63731,63733,63740-63742,63744,63747-63749,63751-63752,63756,63758,63761,63767,63783,63787,63793
+ /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62190,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750-62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62828,62831,62838,62845,62847,62850,62856,62879,62881,62886,62904,62907-62908,62910,62912,62914,62916,62918,62920,62925,62932-62933,62935,62940,62942,62944-62946,62949,62955-62956,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,
63076,63079,63081,63083,63085,63087,63089,63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63160,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209,63216,63220-63221,63224,63227,63240,63246,63250,63255,63259,63261,63275-63276,63279,63281,63283,63287,63290,63292,63297,63302,63304-63307,63315,63319,63327,63330,63332,63339,63342,63345,63361-63363,63367,63379,63389,63391,63393,63402,63408-63409,63416-63417,63425,63427,63429,63431,63433,63448,63451,63453,63457,63459,63464-63470,63473,63482,63497,63505,63508,63510,63515,63521-63524,63526,63536-63537,63551-63552,63554,63556,63558-63559,63562,63570,63576,63582,63589-63593,63602,63604,63608-63609,63616,63618,63624,63626,63628,63630,63634,63639,63642,63644,63650,63652,63656,63679,63685,63689,63691,63693,63695,63698,63700-63702,63704,63706-63707,63709,63711,63713,63715,63717-63718
,63721-63727,63731,63733,63740-63742,63744,63747-63749,63751-63752,63756,63758,63761,63767,63783,63787,63793,63798
Modified: grass/branches/releasebranch_7_0/display/d.geodesic/d.geodesic.html
===================================================================
--- grass/branches/releasebranch_7_0/display/d.geodesic/d.geodesic.html 2014-12-28 13:22:50 UTC (rev 63798)
+++ grass/branches/releasebranch_7_0/display/d.geodesic/d.geodesic.html 2014-12-28 13:30:25 UTC (rev 63799)
@@ -8,20 +8,12 @@
<h2>OPTIONS</h2>
-This program can be run either interactively or non-interactively.
-If the user types <b>d.geodesic</b> on the command line and runs it without other program
-parameters, the mouse will be activated; the user is asked to use
-the mouse to indicate the starting and ending points of each geodesic line
-to be drawn. The default line color (black) and text color (red)
-will be used.
+By default black line color and red text color will be used.
-<p>Alternately, the user can specify the starting and ending coordinates
-of the geodesic, line color, and text color on the command line,
-and run the program non-interactively.
-
-<p>Once the user indicates the starting and ending coordinates
-of the geodesic, the line and its length (in miles) are displayed to
-the user's graphics monitor. If the text color is set to <em>none</em>,
+<p>
+By indicating the starting and ending coordinates
+of the geodesic, the line and its length (by default in meters) are displayed to
+the graphical output. If the text color is set to <em>none</em>,
the great circle distance is not displayed.
<h2>EXAMPLE</h2>
@@ -33,10 +25,11 @@
g.region vector=country_boundaries -p
d.mon wx0
d.vect country_boundaries type=area
+# show additionally a 20 degree grid
+d.grid 20
+
d.geodesic coordinates=55:58W,33:18S,26:43E,60:37N \
- line_color=yellow text_color=red
-# show additionally 10 degree grid
-d.grid 10
+ line_color=yellow text_color=red units=kilometers
</pre></div>
<p><center>
Modified: grass/branches/releasebranch_7_0/display/d.geodesic/d_geodesic.png
===================================================================
(Binary files differ)
Modified: grass/branches/releasebranch_7_0/display/d.geodesic/local_proto.h
===================================================================
--- grass/branches/releasebranch_7_0/display/d.geodesic/local_proto.h 2014-12-28 13:22:50 UTC (rev 63798)
+++ grass/branches/releasebranch_7_0/display/d.geodesic/local_proto.h 2014-12-28 13:30:25 UTC (rev 63799)
@@ -1 +1 @@
-void plot(double, double, double, double, int, int);
+void plot(double, double, double, double, int, int, double, const char *);
Modified: grass/branches/releasebranch_7_0/display/d.geodesic/main.c
===================================================================
--- grass/branches/releasebranch_7_0/display/d.geodesic/main.c 2014-12-28 13:22:50 UTC (rev 63798)
+++ grass/branches/releasebranch_7_0/display/d.geodesic/main.c 2014-12-28 13:30:25 UTC (rev 63799)
@@ -11,7 +11,7 @@
* Jan-Oliver Wagner <jan intevation.de>
* PURPOSE: displays a geodesic line in the active frame on the user's
* graphics monitor
- * COPYRIGHT: (C) 1999-2006 by the GRASS Development Team
+ * COPYRIGHT: (C) 1999-2014 by the GRASS Development Team
*
* This program is free software under the GNU General Public
* License (>=v2). Read the file COPYING that comes with GRASS
@@ -31,10 +31,13 @@
int text_color;
double lon1, lat1, lon2, lat2;
char *deftcolor;
+ const char *unit;
+ int unit_id;
+ double factor;
struct GModule *module;
struct
{
- struct Option *lcolor, *tcolor, *coor;
+ struct Option *lcolor, *tcolor, *coor, *units;
} parm;
G_gisinit(argv[0]);
@@ -42,6 +45,8 @@
module = G_define_module();
G_add_keyword(_("display"));
G_add_keyword(_("distance"));
+ G_add_keyword(_("great circle"));
+ G_add_keyword(_("shortest path"));
module->description =
_("Displays a geodesic line, tracing the shortest distance "
"between two geographic points along a great circle, in "
@@ -60,14 +65,24 @@
parm.tcolor->key = "text_color";
parm.tcolor->label = _("Text color or \"none\"");
parm.tcolor->answer = NULL;
-
+
+ parm.units = G_define_standard_option(G_OPT_M_UNITS);
+ parm.units->options = "meters,kilometers,feet,miles";
+ parm.units->label = parm.units->description;
+ parm.units->answer = "meters";
+
if (G_parser(argc, argv))
exit(EXIT_FAILURE);
-
if (G_projection() != PROJECTION_LL)
- G_fatal_error(_("Location is not %s"), G__projection_name(PROJECTION_LL));
+ G_fatal_error(_("Location is not %s"),
+ G__projection_name(PROJECTION_LL));
+ /* get conversion factor and unit name */
+ unit_id = G_units(parm.units->answer);
+ factor = 1. / G_meters_to_units_factor(unit_id);
+ unit = G_get_units_name(unit_id, 1, 0);
+
if (parm.coor->answers[0] == NULL)
G_fatal_error(_("No coordinates given"));
@@ -103,8 +118,8 @@
else
text_color = D_translate_color(parm.tcolor->answer);
- plot(lon1, lat1, lon2, lat2, line_color, text_color);
-
+ plot(lon1, lat1, lon2, lat2, line_color, text_color, factor, unit);
+
D_save_command(G_recreate_command());
D_close_driver();
Modified: grass/branches/releasebranch_7_0/display/d.geodesic/plot.c
===================================================================
--- grass/branches/releasebranch_7_0/display/d.geodesic/plot.c 2014-12-28 13:22:50 UTC (rev 63798)
+++ grass/branches/releasebranch_7_0/display/d.geodesic/plot.c 2014-12-28 13:30:25 UTC (rev 63799)
@@ -1,13 +1,11 @@
+#include <stdio.h>
#include <string.h>
-#include <grass/display.h>
#include <grass/gis.h>
-#include <stdio.h>
+#include <grass/display.h>
#include "local_proto.h"
-#define METERS_TO_MILES(x) ((x) * 6.213712e-04)
-
void plot(double lon1, double lat1, double lon2, double lat2,
- int line_color, int text_color)
+ int line_color, int text_color, double factor, const char *unit)
{
double distance;
double text_x, text_y;
@@ -33,6 +31,7 @@
for (i = 0; i <= nsteps; i++) {
double lon = lon1 + (lon2 - lon1) * i / nsteps;
double lat = G_geodesic_lat_from_lon(lon);
+
if (i == 0)
D_move_abs(lon, lat);
else
@@ -58,7 +57,7 @@
D_text_size(10, 10);
distance = G_geodesic_distance(lon1, lat1, lon2, lat2);
- sprintf(buf, "%.0f miles", METERS_TO_MILES(distance));
+ sprintf(buf, "%.0f %s", distance / factor, unit);
D_pos_abs(text_x, text_y);
D_get_text_box(buf, &t, &b, &l, &r);
Modified: grass/branches/releasebranch_7_0/display/d.rhumbline/main.c
===================================================================
--- grass/branches/releasebranch_7_0/display/d.rhumbline/main.c 2014-12-28 13:22:50 UTC (rev 63798)
+++ grass/branches/releasebranch_7_0/display/d.rhumbline/main.c 2014-12-28 13:30:25 UTC (rev 63799)
@@ -17,7 +17,8 @@
* for details.
*
*****************************************************************************/
-/* TODO: implement G_rhumbline_distance() in libgis
+/* TODO: implement G_rhumbline_distance() in libgis
+ * see also d.geodesic
*/
#include <stdlib.h>
@@ -56,9 +57,15 @@
parm.lcolor->label = _("Line color");
#ifdef CAN_DO_DISTANCES
- parm.tcolor = G_define_option(G_OPT_M_COORDS);
+ parm.tcolor = G_define_standard_option(G_OPT_C_FG);
parm.tcolor->key = "text_color";
- parm.tcolor->label = _("Text color");
+ parm.tcolor->label = _("Text color or \"none\"");
+ parm.tcolor->answer = NULL;
+
+ parm.units = G_define_standard_option(G_OPT_M_UNITS);
+ parm.units->options = "meters,kilometers,feet,miles";
+ parm.units->label = parm.units->description;
+ parm.units->answer = "meters";
#endif
if (G_parser(argc, argv))
@@ -68,6 +75,13 @@
G_fatal_error(_("Location is not %s"),
G__projection_name(PROJECTION_LL));
+#ifdef CAN_DO_DISTANCES
+ /* get conversion factor and unit name */
+ unit_id = G_units(parm.units->answer);
+ factor = 1. / G_meters_to_units_factor(unit_id);
+ unit = G_get_units_name(unit_id, 1, 0);
+#endif
+
if (parm.coor->answers[0] == NULL)
G_fatal_error(_("No coordinates given"));
@@ -98,10 +112,11 @@
deftcolor = DEFAULT_FG_COLOR;
if (parm.tcolor->answer == NULL)
- parm.tcolor->answer = deftcolor;
- text_color = D_translate_color(parm.tcolor->answer);
- if (!text_color)
text_color = D_translate_color(deftcolor);
+ else if (strcmp(parm.tcolor->answer, "none") == 0)
+ text_color = -1;
+ else
+ text_color = D_translate_color(parm.tcolor->answer);
#endif
plot(lon1, lat1, lon2, lat2, line_color, text_color);
More information about the grass-commit
mailing list