QString IlwisObjectModel::getProperty(const QString &propertyname) { try{ QString property = ResourceModel::getProperty(propertyname); if ( property != sUNDEF) return property; if ( !_ilwisobject.isValid()) return ""; if ( propertyname == "latlonenvelope" || propertyname == "envelope"){ if (hasType(_ilwisobject->ilwisType(), itCOVERAGE)){ return _ilwisobject.as<Coverage>()->envelope(propertyname == "latlonenvelope").toString(); } if ( hasType(_ilwisobject->ilwisType(), itCOORDSYSTEM)){ return _ilwisobject.as<CoordinateSystem>()->envelope(propertyname == "latlonenvelope").toString(); } } if ( propertyname == "pixelsize"){ return pixSizeString(); } if ( propertyname == "centerpixelboundingbox"){ return centerPixelLocation(); } if ( propertyname == "parentdomain"){ return parentDomain(); } if ( propertyname == "valuetype"){ return valueType(); } if ( propertyname == "recordcount"){ if ( hasType(_ilwisobject->ilwisType(), itTABLE)){ return QString::number(_ilwisobject.as<Table>()->recordCount()); } } if ( propertyname == "columncount"){ if ( hasType(_ilwisobject->ilwisType(), itTABLE)){ return QString::number(_ilwisobject.as<Table>()->columnCount()); } } if ( propertyname == "polygoncount"){ if ( hasType(_ilwisobject->ilwisType(), itFEATURE)){ IFeatureCoverage features = _ilwisobject.as<FeatureCoverage>(); return QString::number(features->featureCount(itPOLYGON)); } } if ( propertyname == "linecount"){ if ( hasType(_ilwisobject->ilwisType(), itFEATURE)){ IFeatureCoverage features = _ilwisobject.as<FeatureCoverage>(); return QString::number(features->featureCount(itLINE)); } } if ( propertyname == "pointcount"){ if ( hasType(_ilwisobject->ilwisType(), itFEATURE)){ IFeatureCoverage features = _ilwisobject.as<FeatureCoverage>(); return QString::number(features->featureCount(itPOINT)); } } if ( propertyname == "featurecount"){ if ( hasType(_ilwisobject->ilwisType(), itFEATURE)){ IFeatureCoverage features = _ilwisobject.as<FeatureCoverage>(); return QString::number(features->featureCount()); } } if ( propertyname == "majoraxis"){ if ( hasType(_ilwisobject->ilwisType(), itELLIPSOID)){ IEllipsoid ellipsoid = _ilwisobject.as<Ellipsoid>(); return QString::number(ellipsoid->majorAxis()); } } if ( propertyname == "minoraxis"){ if ( hasType(_ilwisobject->ilwisType(), itELLIPSOID)){ IEllipsoid ellipsoid = _ilwisobject.as<Ellipsoid>(); return QString::number(ellipsoid->minorAxis()); } } if ( propertyname == "flattening"){ if ( hasType(_ilwisobject->ilwisType(), itELLIPSOID)){ IEllipsoid ellipsoid = _ilwisobject.as<Ellipsoid>(); return QString::number(ellipsoid->flattening()); } } if ( propertyname == "excentricity"){ if ( hasType(_ilwisobject->ilwisType(), itELLIPSOID)){ IEllipsoid ellipsoid = _ilwisobject.as<Ellipsoid>(); return QString::number(ellipsoid->excentricity()); } } if (propertyname == "proj4def"){ IlwisTypes objectype = _ilwisobject->ilwisType(); if ( hasType( objectype, itPROJECTION | itCONVENTIONALCOORDSYSTEM)){ IProjection proj; if ( hasType(objectype, itCONVENTIONALCOORDSYSTEM)){ IConventionalCoordinateSystem csyProj = _ilwisobject.as<ConventionalCoordinateSystem>(); if ( csyProj.isValid()){ proj = csyProj->projection(); } }else proj = _ilwisobject.as<Projection>(); if ( proj.isValid()){ return proj->toProj4(); } } } return ""; } catch(const ErrorObject& ){ // no exceptions may escape here } return ""; }