Baňka s GeoAlchemy ukázkový kód

hlasů
6

Může někdo poskytnout jakékoli ukázkový kód pro láhev s GeoAlchemy?

Položena 01/11/2010 v 15:08
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
1

Pokud nejste omezeni na použití baňky, možná budete chtít dát MapFish vyzkoušet, který je založen na závěsníků a používá GeoAlchemy.

Odpovězeno 13/03/2011 v 17:41
zdroj uživatelem

hlasů
1

Můžete jej použít s baňky-SQLAlchemy , ale můžete ho použít na běžný SQLAlchemy taky. Jen přeložit ukázkové modely z GeoAlchemy do baňky-SQLAlchemy. Něco takového:

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))

Já jsem nebyl testován kód, ale to by mělo být spravedlivé transkripce.

Odpovězeno 30/01/2012 v 19:15
zdroj uživatelem

hlasů
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__)
Odpovězeno 24/10/2012 v 00:21
zdroj uživatelem

hlasů
16

Pomocí SQLAlchemy 0,8, Flask-SQLAlchemy a 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))

Ukázkový dotaz:

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()

Jedním ze způsobů převodu výsledek souřadnice x a y (převést na GeoJSON a extrakt souřadnic):

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']
Odpovězeno 19/04/2013 v 01:32
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more