def spatialInfo(self): ret = [] if not self.table.geomType: return ret tbl = [ (QApplication.translate("DBManagerPlugin", "Column:"), self.table.geomColumn), (QApplication.translate("DBManagerPlugin", "Geometry:"), self.table.geomType), (QApplication.translate("DBManagerPlugin", "Qgis Geometry type:"), Qgis.featureType(self.table.wkbType)) ] # only if we have info from geometry_columns if self.table.geomDim: tbl.append( (QApplication.translate( "DBManagerPlugin", "Dimension:"), self.table.geomDim)) srid = self.table.srid if self.table.srid else -1 if srid != -1: sr_info = ( self.table.database().connector.getSpatialRefInfo(srid)) else: sr_info = QApplication.translate("DBManagerPlugin", "Undefined") if sr_info: tbl.append( (QApplication.translate( "DBManagerPlugin", "Spatial ref:"), u"{0} ({1})".format(sr_info, srid))) # estimated extent if not self.table.estimatedExtent: # estimated extent information is not displayed yet, so just block # table signals to avoid double refreshing # (infoViewer->refreshEstimatedExtent->tableChanged->infoViewer) self.table.blockSignals(True) self.table.refreshTableEstimatedExtent() self.table.blockSignals(False) if self.table.estimatedExtent: estimated_extent_str = (u"{:.9f}, {:.9f} - {:.9f}, " u"{:.9f}".format( *self.table.estimatedExtent)) tbl.append( (QApplication.translate( "DBManagerPlugin", "Estimated extent:"), estimated_extent_str)) # extent extent_str = None if self.table.extent and len(self.table.extent) == 4: extent_str = (u"{:.9f}, {:.9f} - {:.9f}, " u"{:.9f}".format(*self.table.extent)) elif self.table.rowCount > 0 or self.table.estimatedRowCount > 0: # Can't calculate an extent on empty layer extent_str = QApplication.translate( "DBManagerPlugin", '(unknown) (<a href="action:extent/get">find out</a>)') if extent_str: tbl.append( (QApplication.translate( "DBManagerPlugin", "Extent:"), extent_str)) ret.append(HtmlTable(tbl)) # Handle extent update metadata if (self.table.extent and self.table.extent != self.table.estimatedExtent and self.table.canUpdateMetadata()): ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", (u'<warning> Metadata extent is different from' u'real extent. You should <a href="action:extent' u'/update">update it</a>!')))) # is there an entry in geometry_columns? if self.table.geomType.lower() == 'geometry': ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", "<warning> There is no entry in geometry_columns!"))) # find out whether the geometry column has spatial index on it if not self.table.isView: if not self.table.hasSpatialIndex(): ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", (u'<warning> No spatial index defined (<a href=' u'"action:spatialindex/create">' u'create it</a>).')))) return ret
def spatialInfo(self): ret = [] if not self.table.geomType: return ret tbl = [ (QApplication.translate("DBManagerPlugin", "Column:"), self.table.geomColumn), (QApplication.translate("DBManagerPlugin", "Geometry:"), self.table.geomType), (QApplication.translate("DBManagerPlugin", "Qgis Geometry type:"), Qgis.featureType(self.table.wkbType)) ] # only if we have info from geometry_columns if self.table.geomDim: tbl.append( (QApplication.translate( "DBManagerPlugin", "Dimension:"), self.table.geomDim)) srid = self.table.srid if self.table.srid else -1 if srid != -1: sr_info = ( self.table.database().connector.getSpatialRefInfo(srid)) else: sr_info = QApplication.translate("DBManagerPlugin", "Undefined") if sr_info: tbl.append( (QApplication.translate( "DBManagerPlugin", "Spatial ref:"), u"{0} ({1})".format(sr_info, srid))) # estimated extent if not self.table.estimatedExtent: # estimated extent information is not displayed yet, so just block # table signals to avoid double refreshing # (infoViewer->refreshEstimatedExtent->tableChanged->infoViewer) self.table.blockSignals(True) self.table.refreshTableEstimatedExtent() self.table.blockSignals(False) if self.table.estimatedExtent: estimated_extent_str = (u"{:.9f}, {:.9f} - {:.9f}, " u"{:.9f}".format( *self.table.estimatedExtent)) tbl.append( (QApplication.translate( "DBManagerPlugin", "Estimated extent:"), estimated_extent_str)) # extent extent_str = None if self.table.extent and len(self.table.extent) == 4: extent_str = (u"{:.9f}, {:.9f} - {:.9f}, " u"{:.9f}".format(*self.table.extent)) elif self.table.rowCount > 0 or self.table.estimatedRowCount > 0: # Can't calculate an extent on empty layer extent_str = QApplication.translate( "DBManagerPlugin", '(unknown) (<a href="action:extent/get">find out</a>)') if extent_str: tbl.append( (QApplication.translate( "DBManagerPlugin", "Extent:"), extent_str)) ret.append(HtmlTable(tbl)) # Handle extent update metadata if (self.table.extent and self.table.extent != self.table.estimatedExtent and self.table.canUpdateMetadata()): ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", (u'<warning> Metadata extent is different from' u'real extent. You should <a href="action:extent' u'/update">update it</a>!')))) # is there an entry in geometry_columns? if self.table.geomType.lower() == 'geometry': ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", "<warning> There is no entry in geometry_columns!"))) # find out whether the geometry column has spatial index on it if not self.table.isView: if not self.table.hasSpatialIndex(): ret.append( HtmlParagraph( QApplication.translate( "DBManagerPlugin", (u'<warning> No spatial index defined (<a href=' u'"action:spatialindex/create">' u'create it</a>).')))) return ret