次のように定義されたジオメトリ型の列を 1 つ持つ sqlAlchemy モデルがあります。
point_geom = Column(Geometry('POINT'), index=True)
私は geoalchemy2 モジュールを使用しています:
from geoalchemy2 import Geometry
次に、sqlAlchemy ORM を使用してクエリを作成すると、すべて正常に動作します。例えば:
データ = session.query(myModel).filter_by(...)
私の問題は、クエリ オブジェクトの sql ステートメントを取得する必要があるときに、次のコードを使用することです。
sql = data.statement.compile(dialect=postgresql.dialect())
ただし、ジオメトリ型の列は Byte[] に変換されるため、結果の SQL ステートメントは次のようになります。
SELECT column_a, column_b, ST_AsBinary(point_geom) AS point_geom
FROM tablename WHERE ...
ジオメトリ型からバイト型への変換を回避するにはどうすればよいですか?