From 7ac99494e5b8afc42f1ad08cfdfb445901e1aa58 Mon Sep 17 00:00:00 2001 From: curt Date: Mon, 1 Mar 1999 15:35:52 +0000 Subject: [PATCH] Generalized the routines a bit to make them more useful. --- Polygon/names.cxx | 27 ++++++++++++++++++++------- Polygon/names.hxx | 8 +++++++- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/Polygon/names.cxx b/Polygon/names.cxx index d01dd9b8d..6d94f88c1 100644 --- a/Polygon/names.cxx +++ b/Polygon/names.cxx @@ -29,7 +29,7 @@ // return the type of the shapefile record -AreaType get_area_type(GDBFile *dbf, int rec) { +AreaType get_shapefile_type(GDBFile *dbf, int rec) { GDBFieldDesc *fdesc[128]; // 128 is an arbitrary number here GDBFValue *fields; //an array of field values char* dbf_rec; //a record containing all the fields @@ -47,6 +47,8 @@ AreaType get_area_type(GDBFile *dbf, int rec) { // parse it into individual fields if ( dbf_rec ) { fields = dbf->recordDeform( dbf_rec ); + } else { + return UnknownArea; } string area = fields[4].str_v; @@ -63,11 +65,18 @@ AreaType get_area_type(GDBFile *dbf, int rec) { area = area.substr(0, area.length() - 1); } + return get_area_type( area ); +} + + +// return area type from text name +AreaType get_area_type( string area ) { if ( area == "AirportKeep" ) { return AirportKeepArea; } else if ( area == "AirportIgnore" ) { return AirportIgnoreArea; - } else if ( area == "Swamp or Marsh" ) { + } else if ( (area == "Swamp or Marsh") + || (area == "Marsh") ) { return MarshArea; } else if ( area == "Bay Estuary or Ocean" ) { return OceanArea; @@ -75,7 +84,8 @@ AreaType get_area_type(GDBFile *dbf, int rec) { return LakeArea; } else if ( area == "Lake Dry" ) { return DryLakeArea; - } else if ( area == "Lake Intermittent" ) { + } else if ( (area == "Lake Intermittent") + || (area == "IntermittentLake") ) { return IntLakeArea; } else if ( area == "Reservoir" ) { return ReservoirArea; @@ -94,15 +104,15 @@ AreaType get_area_type(GDBFile *dbf, int rec) { } else { cout << "unknown area = '" << area << "'" << endl; // cout << "area = " << area << endl; - for ( int i = 0; i < area.length(); i++ ) { - cout << i << ") " << (int)area[i] << endl; - } + // for ( int i = 0; i < area.length(); i++ ) { + // cout << i << ") " << (int)area[i] << endl; + // } return UnknownArea; } } -// return text form of area name +// return text from of area name string get_area_name( AreaType area ) { if ( area == AirportKeepArea ) { return "AirportKeep"; @@ -140,6 +150,9 @@ string get_area_name( AreaType area ) { // $Log$ +// Revision 1.2 1999/03/01 15:35:52 curt +// Generalized the routines a bit to make them more useful. +// // Revision 1.1 1999/02/25 21:30:24 curt // Initial revision. // diff --git a/Polygon/names.hxx b/Polygon/names.hxx index ce6236ee3..168df64d8 100644 --- a/Polygon/names.hxx +++ b/Polygon/names.hxx @@ -60,7 +60,10 @@ enum AreaType { // return the type of the shapefile record -AreaType get_area_type(GDBFile *dbf, int rec); +AreaType get_shapefile_type(GDBFile *dbf, int rec); + +// return area type from text name +AreaType get_area_type( string area ); // return text form of area name string get_area_name( AreaType area ); @@ -70,6 +73,9 @@ string get_area_name( AreaType area ); // $Log$ +// Revision 1.3 1999/03/01 15:35:53 curt +// Generalized the routines a bit to make them more useful. +// // Revision 1.2 1999/02/26 22:10:42 curt // Updated names and priorities of area types. // -- 2.39.2