向Flask AppBuilder添加对GeoAlchemy2几何字段的支持
fab-addon-geoalchem的Python项目详细描述
Fab_addon_地理炼金术
Flask AppBuilder地理炼金术字段的实现。
它自动将点几何列转换为具有纬度和经度字段的小部件 还有传单地图。地图上有一个指向位置的指针,在拖动的地方有双向绑定 指针更改输入字段中的值,反之亦然。 稍后,还可以添加对直线列和多边形列的支持(欢迎拉取请求)。
安装
运行pip install fab-addon-geoalchemy
。
用法
您可以在tests文件夹的unittests中找到示例。 但简而言之,这就是您需要做的:
在config.py中添加以下内容:
ADDON_MANAGERS = ['fab_addon_geoalchemy.manager.GeoAlchemyManager']
然后将其用于您的模型和视图:
from sqlalchemy import Column, String
from fab_addon_geoalchemy.views import GeoModelView
from fab_addon_geoalchemy.models import GeoSQLAInterface, Geometry
class Observation(Model):
id = Column(Integer, primary_key=True)
name = Column(String)
location = Column(Geometry(geometry_type='POINT', srid=4326))
def __repr__(self):
if self.name:
return self.name
else:
return 'Person Type %s' % self.id
class ObservationView(GeoModelView):
datamodel = GeoSQLAInterface(Observation)
add_columns = ['name', 'location']
这将自动创建表单中的latlonwidget,并处理数据以将纬度和经度值转换为数据库中的点几何图形。srid表单该列由字段用于将文本坐标转换为几何图形。如果输入的坐标对指定的srid实际有效,则不进行验证。