任何人都可以提供任何示例代码为Flask与GeoAlchemy?瓶与GeoAlchemy示例代码
6
A
回答
15
使用SQLAlchemy的0.8,瓶-SQLAlchemy的和Geoalchemy 2:
from app import db
from geoalchemy2.types import Geometry
class Point(db.Model):
"""represents an x/y coordinate location."""
__tablename__ = 'point'
id = db.Column(db.Integer, primary_key=True)
geom = db.Column(Geometry(geometry_type='POINT', srid=4326))
示例查询:
计算结果转换为x和y坐标的from geoalchemy2.elements import WKTElement
from app import models
def get_nearest(lat, lon):
# find the nearest point to the input coordinates
# convert the input coordinates to a WKT point and query for nearest point
pt = WKTElement('POINT({0} {1})'.format(lon, lat), srid=4326)
return models.Point.query.order_by(models.Point.geom.distance_box(pt)).first()
一种方式(转换为以GeoJSON并提取坐标):
import geoalchemy2.functions as func
import json
from app import db
def point_geom_to_xy(pt):
# extract x and y coordinates from a point geometry
geom_json = json.loads(db.session.scalar(func.ST_AsGeoJSON(pt.geom)))
return geom_json['coordinates']
1
如果您不仅限于使用Flask,您可能需要尝试使用MapFish,这是基于Pylons并使用GeoAlchemy。
1
您可以将它与Flask-SQLAlchemy一起使用,但您也可以将它与纯SQLAlchemy一起使用。只需将sample models from GeoAlchemy翻译为Flask-SQLAlchemy即可。类似这样的:
class Spot(db.Model):
__tablename__ = 'spots'
id = db.Column(Integer, primary_key=True)
name = db.Column(Unicode, nullable=False)
height = db.Column(Integer)
created = db.Column(DateTime, default=datetime.now())
geom = db.GeometryColumn(Point(2))
我没有测试代码,但它应该是一个公平的转录。
+2
此代码不起作用:它会给你'AttributeError:'SQLAlchemy'对象没有属性'GeometryColumn'' – jsalonen 2012-04-01 21:05:41
0
from myapp import db
from geoalchemy import GeometryColumn, Point
class FixXX(db.Model):
__tablename__ = 'fixXX'
fix_pk = db.Column(db.Integer, primary_key=True)
fix = db.Column(db.String)
geometry = GeometryColumn(Point(2, srid=4326))
GeometryDDL(FixXX.__table__)
相关问题
- 1. 代码示例
- 2. 帮助与iPhone示例代码
- 3. 同步Openlayers与Datagrid - 示例/代码段?
- 4. pygame示例代码与事件
- 5. UISplitViewController与NavigationControllers(包括示例代码)
- 6. lungo框架不能与示例代码
- 7. WebRTC代码示例
- 8. onFocusChange代码示例?
- 9. CATiledLayer:示例代码
- 10. TTXMLParser示例代码?
- 11. GtkImageView示例代码
- 12. Grails示例和示例代码片段
- 13. 不显示opengl纹理,尽管代码几乎与代码示例相同
- 14. 描述Mockito示例代码
- 15. iPhone的代码示例UIGetScreenImage
- 16. Hyperic java api示例代码
- 17. SQLiteBooks示例代码丢失
- 18. WWDC 2010示例代码
- 19. MKOverlayView用法示例代码
- 20. AES加密,示例代码
- 21. POST + cookie的示例代码?
- 22. jQuery:labelOver(水印)示例代码
- 23. 需要MUMPS示例代码
- 24. 主详细示例代码
- 25. 的JMeter的示例代码
- 26. Microsoft HPC 2012代码示例
- 27. HMAC-SHA1代码示例
- 28. 示例代码MoviePlayer问题
- 29. 多线程示例代码:
- 30. PHP Webservice的示例代码
要做什么特别的? – 2010-11-01 15:02:09