>> ***********
>> import sys
>> from sqlalchemy import *
>> from sqlalchemy.orm import *
>> from geoalchemy import *
>> from sqlalchemy.sql import func
>>
>> db = "postgresql://postgres@localhost:5432/map"
>> engine = create_engine(db, echo=False)
>> metadata = MetaData()
>>
>> source = Table('forearc_basins_polygon_wgs84',
>> metadata,
>> GeometryExtensionColumn('geom', Geometry(3)),
>> autoload=True,
>> autoload_with=engine
>> )
>>
>> Session = sessionmaker(bind=engine)
>> session = Session()
>>
>> q = session.query(source)
>> row = q.order_by(desc("st_area(geom)")).first() # largest polygon
>>
>> print "DB Columns", source.columns
>> print "GeoColumn Type", session.scalar(functions.geometry_type(row.geom))
>>
>> center = DBSpatialElement(row.geom.centroid())
Try
center = DBSpatialElement(session.scalar(row.geom.centroid))
>> lon = session.scalar(center.x)
>> lat = session.scalar(center.y)
>> area = session.scalar(DBSpatialElement(row.geom.area()))
area = session.scalar(row.geom.area)
Note that area is a number here.
--
Eric Lemoine
Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex
Tel : 00 33 4 79 44 44 94
Mail :
eric.l...@camptocamp.com
http://www.camptocamp.com