示例#1
0
/*!
  \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("unit");
	if (!name)
	    return U_UNKNOWN;
	
	if (strcasecmp(name, "meter") == 0 || strcasecmp(name, "metre") == 0 
            || strcasecmp(name, "meters") == 0 || strcasecmp(name, "metres") == 0)
	    units = U_METERS;
	else if (strcasecmp(name, "kilometer") == 0 || strcasecmp(name, "kilometre") == 0
                 || strcasecmp(name, "kilometers") == 0 || strcasecmp(name, "kilometres") == 0)
	    units = U_KILOMETERS;
	else if (strcasecmp(name, "acre") == 0 || strcasecmp(name, "acres") == 0)
	    units = U_ACRES;
	else if (strcasecmp(name, "hectare") == 0 || strcasecmp(name, "hectares") == 0)
	    units = U_HECTARES;
	else if (strcasecmp(name, "mile") == 0 || strcasecmp(name, "miles") == 0)
	    units = U_MILES;
	else if (strcasecmp(name, "foot") == 0 || strcasecmp(name, "feet") == 0)
	    units = U_FEET;
	else if (strcasecmp(name, "foot_us") == 0 || strcasecmp(name, "foot_uss") == 0)
	    units = U_USFEET;
	else if (strcasecmp(name, "degree") == 0 || strcasecmp(name, "degrees") == 0)
	    units = U_DEGREES;
	else
	    units = U_UNKNOWN;
    }
    return units;
}
示例#2
0
/*!
  \brief Get units (localized) name for the current location
  
  Returns a string describing the database grid units. It returns a
  plural form (eg. 'feet') if <i>plural</i> is non-zero. Otherwise it
  returns a singular form (eg. 'foot').
  
  \param plural plural form if non-zero
  
  \return localized units name
*/
const char *G_database_unit_name(int plural)
{
    int units;
    const char *name;
    
    units = G_projection_units(G_projection());
    
    if (units == U_UNDEFINED) {
	name = lookup_units(plural ? "units" : "unit");
	if (!name)
	    return plural ? _("units") : _("unit");
	
	if (strcasecmp(name, "meter") == 0 || strcasecmp(name, "metre") == 0 
            || strcasecmp(name, "meters") == 0 || strcasecmp(name, "metres") == 0)
	    units = U_METERS;
	else if (strcasecmp(name, "kilometer") == 0 || strcasecmp(name, "kilometre") == 0
                 || strcasecmp(name, "kilometers") == 0 || strcasecmp(name, "kilometres") == 0)
	    units = U_KILOMETERS;
	else if (strcasecmp(name, "acre") == 0 || strcasecmp(name, "acres") == 0)
	    units = U_ACRES;
	else if (strcasecmp(name, "hectare") == 0 || strcasecmp(name, "hectares") == 0)
	    units = U_HECTARES;
	else if (strcasecmp(name, "mile") == 0 || strcasecmp(name, "miles") == 0)
	    units = U_MILES;
	else if (strcasecmp(name, "foot") == 0 || strcasecmp(name, "feet") == 0)
	    units = U_FEET;
	else if (strcasecmp(name, "foot_us") == 0 || strcasecmp(name, "foot_uss") == 0)
	    units = U_USFEET;
	else if (strcasecmp(name, "degree") == 0 || strcasecmp(name, "degrees") == 0)
	    units = U_DEGREES;
	else
	    units = U_UNKNOWN;
    }
    
    return G_get_units_name(units, plural, FALSE);
}