2

空間データをsqlalchemyオブジェクトにマッピングする方法を探しています。そのような方法があるかどうか誰かが私に言うことができますか?ありがとう!

4

2 に答える 2

6

GeoAlchemyMySQLで空間列を作成できましたが、このパッケージはメンテナンスされなくなりました。ドキュメントによると、 GeoAlchemy2ではサポートされていないため、 GeoAlchemy2 では実行できません。MySQL

とにかく、で空間列GeoAlchemyを使用する必要はありません。カスタムクラスを作成することでそれを実現できます:MySQLPythonGeometry

from sqlalchemy import func
from sqlalchemy.types import UserDefinedType

class Geometry(UserDefinedType):
    def get_col_spec(self):
        return 'GEOMETRY'

    def bind_expression(self, bindvalue):
        return func.ST_GeomFromText(bindvalue, type_=self)

    def column_expression(self, col):
        return func.ST_AsText(col, type_=self)

次に、モデル内でこのカスタム タイプを使用できます。

your_column = Column(Geometry, nullable=False)
于 2018-07-28T09:05:54.183 に答える
1

はい、GeoAlchemyパッケージを見たいと思うでしょう。

GeometryColumn という名前のテーブルに列の型をもたらします。

フィルタリングも非常に sqlalchemic です。ドキュメントから:

s = session.query(Spot).filter(Spot.geom.kml == '<Point><coordinates>-81.4,38.08</coordinates></Point>').first()

単純なpip install GeoAlchemy.

于 2012-05-04T15:40:27.477 に答える