Re: [GeoAlchemy] can't adapt type 'centroid'

92 views
Skip to first unread message

Eric Lemoine

unread,
Nov 27, 2012, 7:44:45 AM11/27/12
to geoal...@googlegroups.com
>> ***********
>> 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

Gery Herbozo

unread,
Dec 4, 2012, 3:22:06 AM12/4/12
to geoal...@googlegroups.com
cool, thanks a lot, it worked
Reply all
Reply to author
Forward
0 new messages