26 static ossimTrace traceDebug(
"ossimOgrInfo:debug");
27 static ossimTrace traceDump(
"ossimOgrInfo:dump");
36 std::vector<int> indexVector;
37 ossimString name = metaNameValue.
split(
":")[0].downcase().trim().substitute(
" ",
"_",
true);
39 std::vector<ossimString> allMatchKeys;
42 if (allMatchKeys.size() == 0)
52 if (!intValue.
empty())
57 if (indexVector.size() == 0)
59 const char* tmpValue = kwl.
find(keyValue);
74 if (
max < indexVector.at(i))
76 max = indexVector.at(i);
138 std::vector<ossimString> metaList = metaData.
split(
"\n");
182 !metaStr.
contains(
"} } } { family"))
216 !metaStr.
contains(
"} } } { family"))
243 !metaStr.
contains(
"} } } { family"))
277 !metaStr.
contains(
"} } } { family"))
311 !metaStr.
contains(
"} } } { family"))
345 !metaStr.
contains(
"} } } { family"))
379 !metaStr.
contains(
"} } } { family"))
392 if (metaStr.
contains(
"} } } { family"))
412 std::vector<ossimString> fcaTmpVector = metaNameValue.
split(
"}}");
417 if (!fcaTemp.
empty())
421 if (fcaTemp.
split(
" ").size() > 1)
423 fcaClassName = fcaTemp.
split(
" ")[2].trim();
428 std::vector<ossimString> fcaValues;
429 if (fcaTemp.
contains(
"<Grassland>displaymetadata {"))
432 if (!displaymetadataVector.
empty())
434 fcaValues = displaymetadataVector.
split(
"{");
439 fcaValues = fcaTemp.
split(
"{");
442 if (fcaValues.size() > 2)
473 size_t nLen = strlen(keyName.
c_str());
474 if (metaData != NULL && driverName ==
"vpf")
476 while(*metaData != NULL)
478 if (EQUALN(*metaData, keyName.
c_str(), nLen)
479 && ( (*metaData)[nLen] ==
'=' ||
480 (*metaData)[nLen] ==
':' ) )
482 strValue = (*metaData)+nLen+1;
487 if (!strValue.
empty())
497 for(
int i = 0; i < layerCount; ++i)
506 int featureCount = layer->GetFeatureCount();
507 const char* layerName = layer->GetLayerDefn()->GetName();
509 OGRFeature* feature = layer->GetFeature(0);
512 OGRGeometry* geom = feature->GetGeometryRef();
515 switch(geom->getGeometryType())
518 case wkbMultiPoint25D:
520 geomType =
"Multi Points";
526 geomType =
"Polygon";
529 case wkbLineString25D:
532 geomType =
"LineString";
541 case wkbMultiPolygon25D:
542 case wkbMultiPolygon:
544 geomType =
"Multi Polygon";
550 geomType =
"Unknown Type";
556 OGRFeature::DestroyFeature(feature);
558 kwl.
add(specialPrefix,
564 OGRFeatureDefn* featureDefn = layer->GetLayerDefn();
567 for(
int iField = 0; iField < featureDefn->GetFieldCount(); iField++ )
569 OGRFieldDefn* fieldDefn = featureDefn->GetFieldDefn(iField);
574 if( fieldDefn->GetType() == OFTInteger )
576 fieldType =
"Integer";
578 else if( fieldDefn->GetType() == OFTReal )
582 else if( fieldDefn->GetType() == OFTString )
584 fieldType =
"String";
586 else if ( fieldDefn->GetType() == OFTWideString)
588 fieldType =
"WideString";
590 else if ( fieldDefn->GetType() == OFTBinary )
592 fieldType =
"Binary";
594 else if ( fieldDefn->GetType() == OFTDate )
598 else if ( fieldDefn->GetType() == OFTTime )
602 else if ( fieldDefn->GetType() == OFTDateTime )
604 fieldType =
"DateTime";
608 fieldType =
"String";
622 kwl.
add(specialPrefix,
627 kwl.
add(specialPrefix,
640 static const char MODULE[] =
"ossimOgrInfo::print";
644 << MODULE <<
" DEBUG Entered...\n";
651 if (driverName ==
"esri shapefile")
655 else if (driverName ==
"ogdi")
Represents serializable keyword/value map.
void parseMetadata(ossimString metaData, ossimKeywordlist &kwl, ossimString metaPrefix) const
Parse the VPF metadata
const char * find(const char *key) const
bool contains(char aChar) const
static ossimString toString(bool aValue)
Numeric to string methods.
OGRSFDriver * m_ogrDriver
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
void findAllKeysThatMatch(std::vector< ossimString > &result, const ossimString ®ularExpression) const
Finds keys that match regular expression.
virtual bool getKeywordlist(ossimKeywordlist &kwl) const
Method to dump info to a keyword list.
void push_back(char c)
Equivalent to insert(end(), c).
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimOgrInfo()
default constructor
ossimString getDriverName(ossimString driverName) const
unsigned int ossim_uint32
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
ossimString getKeyValue(ossimString metaPrefix, ossimString prefix, ossimString metaNameValue, ossimKeywordlist &kwl)
virtual ~ossimOgrInfo()
virtual destructor
static ossimString downcase(const ossimString &aString)
virtual std::ostream & print(std::ostream &out) const
Print method.
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
virtual bool open(const ossimFilename &file)
open method.
OGRDataSource * m_ogrDatasource
ossimString after(const ossimString &str, std::string::size_type pos=0) const
METHOD: after(str, pos) Returns string immediately after the token str.
void remove(const char *key)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.