def _get_vector_attributes(self,ds,attrs):
logging.debug("[FileMan][_get_vector_attributes]")
layer = ds.GetLayer()
# extent
extent = layer.GetExtent()
logging.debug("[FileMan][_get_vector_attributes] Extent: %s" % repr(extent) )
attrs["extent"] = (extent[0],extent[2],extent[1],extent[3])
# features count
attrs["features_count"] = layer.GetFeatureCount()
# geom type
ftype = layer.GetGeomType()
if ftype == ogr.wkbPolygon: #3
attrs["type"] = "polygon"
elif ftype == ogr.wkbPoint: #1
attrs["type"] = "point"
elif ftype == ogr.wkbLineString: #2
attrs["type"] = "line"
elif ftype == ogr.wkbPolygon25D:
attrs["type"] = "polygon"
else:
attrs["type"] = "none/unknown" # 0 or anything else
# srs
sr = layer.GetSpatialRef()
logging.debug("[FileMan][_get_vector_attributes] Spatial Reference from layer.GetSpatialRef() : %s" % repr(sr) )
if sr:
attrs["prj"]= self._get_prj(sr)
else:
attrs["prj"] = "unknown"
# Done
return attrs
评论列表
文章目录