空間データをsqlalchemyオブジェクトにマッピングする方法を探しています。そのような方法があるかどうか誰かが私に言うことができますか?ありがとう!
質問する
2374 次
2 に答える
6
GeoAlchemyMySQL
で空間列を作成できましたが、このパッケージはメンテナンスされなくなりました。ドキュメントによると、 GeoAlchemy2ではサポートされていないため、 GeoAlchemy2 では実行できません。MySQL
とにかく、で空間列GeoAlchemy
を使用する必要はありません。カスタムクラスを作成することでそれを実現できます:MySQL
Python
Geometry
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 に答える