8

PostGISのgeometry(point、4326)列(場所、SRID 4326を使用)を持つpostgresqlのテーブルがあり、SQL Alchemyを使用してテーブル(残りの列)を問題なく更新するPythonアプリケーションがあります。

ここで、場所の列を更新する必要があります。特定の場所の適切なテキスト表現を使用して、GEOAlchemyを使用せずにSQL Alchemyを使用して列を更新できることはわかっています。たとえば、次の値で列を更新できます: '0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040 '

これはlat:33.9346343 long:-118.0488106に対応します

問題は、データベースにクエリを実行せずに、これ(33.9346343、-118.0488106)を入力として持つこの「0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040」をPythonで計算する方法はありますか?または、適切なテキスト入力を使用して列を更新する方法はありますか?

SQLAlchemyを使用してこのクエリを実行できることはわかっています。

select st_setsrid(st_makepoint(-118.0488106, 33.9346343),4326)

列を更新するための値を取得しますが、それは避けたいと思います。

前もって感謝します!

4

1 に答える 1

12

この問題の解決策は、思ったより簡単です。テキストと入力緯度経度を使用してフィールドを更新するには、テキスト割り当てで SRID を定義するだけで済みました。

場所 = 'SRID=4326;ポイント(-118.0488106 33.9346343)'

これにより、geometry(point,4326) 列が適切に更新され、テーブルで選択を行うと、列の値が期待どおりになります。

"0101000020E6100000AEAC7EB61F835DC0241CC418A2F74040"

みんなありがとう!

于 2013-03-07T18:40:08.080 に答える