Skip to main content

Add support for GeoAlchemy2 Geometry fields to Flask Appbuilder

Project description

fab_addon_geoalchemy

Build status

Implementation of GeoAlchemy fields for Flask Appbuilder.

It automatically transforms POINT Geometry columns to widgets with a field for latitude and longitude and a leaflet map. The map has a pointer for the location, and there is two way binding where dragging the pointer changes the value in the input fields and vice-versa. Later on, support for line and polygon columns may be added as well (pull requests welcome).

Installation

Run pip install fab-addon-geoalchemy.

Usage

You can find examples in the unittests in the tests folder. But in short, this is what you need to do:

Add the following to your config.py:

ADDON_MANAGERS = ['fab_addon_geoalchemy.manager.GeoAlchemyManager']

And then use this for your models and views:

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']

This will automatically create the LatLonWidget in the form, and process the data to transform the latitude and longitude values into a point geometry in the database. The srid form the column is used by the field for the conversion of the text coordinates to the geometry. No validation is done if the entered coordinates are actually valid for the specified SRID.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
fab_addon_geoalchemy-0.4.1-py3.5.egg (75.1 kB) Copy SHA256 hash SHA256 Egg 3.5
fab_addon_geoalchemy-0.4.1.tar.gz (57.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page