I made some changes in trunk. Can you please try again?
On Saturday, 5 January 2013 07:05:48 UTC-6, Paolo valleri wrote:
>
> Hi, I made a few more tests:
> from gluon.dal import geoPoint, geoLine, geoPolygon
> db.define_table('test_geo',
> Field('loc_test','geometry()'))
> db.test_geo.insert(loc_test=geoPoint(45.89096,11.0401399))
> db.test_geo.insert(loc_test=geoPolygon((0,0),(150,0),(150,150),(0,150),(0,
> 0)))
>
> query = db.test_geo.loc_test.st_contains(geoPoint(1,1))
> print db(query).select(db.test_geo.id, db.test_geo.loc_test)
>
> dist = db.test_geo.loc_test.st_distance(geoPoint(45.0,11.0)).with_alias(
> 'dist')
> print db(db.test_geo.id>0).select(db.test_geo.id, dist)
>
> dist = db.test_geo.loc_test.st_distance(geoPoint(45.0,11.0))
> print db(db.test_geo.id>0).select(db.test_geo.id, dist)
> The results are the following:
>
> The first query worked
>
> The second query failed with the following error:
> Traceback (most recent call last):
>
> File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 212, in
> restricted
> exec ccode in environment
> File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/db.py"
> <http://127.0.0.1:8000/admin/default/edit/bikend/models/db.py>, line 589, in
> <module>
> print db(db.test_geo.id>0).select(db.test_geo.id, dist)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 8975, in select
> return adapter.select(self.query,fields,attributes)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1636, in select
> return self._select_aux(sql,fields,attributes)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1601, in
> _select_aux
> self.execute(sql)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1714, in execute
> return self.log_execute(*a, **b)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1708, in
> log_execute
> ret = self.cursor.execute(*a, **b)
> ProgrammingError: syntax error at or near "AS"
> LINE 1: ...GeomFromText('POINT (45.000000 11.000000)',4326)) AS dist) F...
>
>
> The third one failed with the following error:
>
> Traceback (most recent call last):
> File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 212, in
> restricted
> exec ccode in environment
> File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/db.py"
> <http://127.0.0.1:8000/admin/default/edit/bikend/models/db.py>, line 586, in
> <module>
> print db(db.test_geo.id>0).select(db.test_geo.id, dist)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 8975, in select
> return adapter.select(self.query,fields,attributes)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1636, in select
> return self._select_aux(sql,fields,attributes)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1601, in
> _select_aux
> self.execute(sql)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1714, in execute
> return self.log_execute(*a, **b)
> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1708, in
> log_execute
> ret = self.cursor.execute(*a, **b)
> ProgrammingError: function st_astext(double precision) does not exist
> LINE 1: SELECT test_geo.id, ST_AsText(ST_Distance(test_geo<span
> style="color: #660;"...
> Show original
> <https://groups.google.com/group/web2py/msg/6ff54d463de23269?dmode=source&output=gplain&noredirect>
>
>
--