浏览代码

gislib: add G_database_unit function which returns id of currently used units in location - G_projection_units is not enough

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@69003 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 8 年之前
父节点
当前提交
ecf2eac9f5
共有 2 个文件被更改,包括 16 次插入4 次删除
  1. 1 0
      include/defs/gis.h
  2. 15 4
      lib/gis/proj3.c

+ 1 - 0
include/defs/gis.h

@@ -626,6 +626,7 @@ const char *G_projection_name(int);
 
 /* proj3.c */
 const char *G_database_unit_name(int);
+int G_database_unit();
 const char *G_database_projection_name(void);
 const char *G_database_datum_name(void);
 const char *G_database_ellipse_name(void);

+ 15 - 4
lib/gis/proj3.c

@@ -50,14 +50,26 @@ static void init(void)
 const char *G_database_unit_name(int plural)
 {
     int units;
+    units = G_database_unit();
+    return G_get_units_name(units, plural, FALSE);
+}
+
+/*!
+  \brief Get units id for the current location
+  
+  \return units id
+*/
+int G_database_unit()
+{
+    int units;
     const char *name;
     
     units = G_projection_units(G_projection());
     
     if (units == U_UNDEFINED) {
-	name = lookup_units(plural ? "units" : "unit");
+	name = lookup_units("unit");
 	if (!name)
-	    return plural ? _("units") : _("unit");
+	    return U_UNKNOWN;
 	
 	if (strcasecmp(name, "meter") == 0 || strcasecmp(name, "metre") == 0 
             || strcasecmp(name, "meters") == 0 || strcasecmp(name, "metres") == 0)
@@ -80,8 +92,7 @@ const char *G_database_unit_name(int plural)
 	else
 	    units = U_UNKNOWN;
     }
-    
-    return G_get_units_name(units, plural, FALSE);
+    return units;
 }
 
 /*!