I'd like to find all table entries within x meters of a certain location. The DAL object in question uses the spatialite adapter (my system's spatialite library is the most recent version), and the field of interest is of type 'geometry':
db = DAL('spatialite://...') db.define_table('point', Field('name'), Field('loc','geometry()')) Massimo suggested the following <https://groups.google.com/d/msg/web2py/ahO2ydF7yK0/yPH1QC-h3IYJ> as a method of finding rows within distance: query = db.point.loc.st_distance(geoPoint(37.7833, 122.4167)) < 10 rows = db(query).select(db.point.name) However, as I understand, the above query does the following <http://www.postgis.org/docs/ST_Distance.html>: For geometry type Returns the 2-dimensional cartesian minimum distance > (based on spatial ref) between two geometries in projected units. For > geography type defaults to return spheroidal minimum distance between two > geographies in meters. > If I change the 'loc' field's type to 'geography()', I get the following exception: 3. Exception in 'point definition': Field: unknown field type: geography() for loc I've also tried tinkering with the st_within() method <https://groups.google.com/forum/#!searchin/web2py/st_within/web2py/mHHeVNfYV6g/rev9zRKBdXcJ>, but doing so generates this error message: <type 'exceptions.AttributeError'> 'SpatiaLiteAdapter' object has no attribute 'ST_DWITHIN' When using the spatialite adapter, what is the recommended way to find records within some distance, measured in meters? -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.