ポリゴンに結合したいテーブルに 8 つの実際の値があります。ただし、これらの値を使用してポリゴンを作成する方法を理解できませんでした。私はのバリエーションを試し続けます
SELECT polygon(lat1,lon1,lat2,lon2,lat3,lon3,lat4,lon4) FROM table;
しかし、ポリゴン関数が存在しないか、ポリゴン タイプの入力構文が無効であるというエラーが発生し続けます。誰もこれを以前にやったことがありますか?
ポリゴンに結合したいテーブルに 8 つの実際の値があります。ただし、これらの値を使用してポリゴンを作成する方法を理解できませんでした。私はのバリエーションを試し続けます
SELECT polygon(lat1,lon1,lat2,lon2,lat3,lon3,lat4,lon4) FROM table;
しかし、ポリゴン関数が存在しないか、ポリゴン タイプの入力構文が無効であるというエラーが発生し続けます。誰もこれを以前にやったことがありますか?
通常の postgres ポリゴンの構文は次のようになります。
insert into geo_table values (1, '((2,2),(3,4),(3,6),(1,1))');
1 は ID で、引用符で囲まれたエントリはポリゴンです。クエリは似ていると思いますが、おそらく座標には括弧などが必要です。通常、必要な地理空間データの場合 (Lon Lat) 座標。Postgis は、次のようなWKTステートメントも受け取ります。
GeomFromText('POLYGON((long1 lat1, long2 lat2, long3 lat3))')
bvmou で述べたように - 正常GeomFromText
に動作します。小さな構文の更新を追加します。
GeomFromText('POLYGON((long1 lat1, long2 lat2, long3 lat3))')
この例では、テーブルから経度と緯度の座標を取得し、ジオメトリに変換します。各ボックスの寸法は、long_high、long_low、lat_high、および lat_low として指定されます。ここでは、約500m×500mの箱。
テーブルに新しいジオメトリ列「ボックス」を追加します
SELECT AddGeometryColumn('public', 'predpol_raw', 'box', 2240, 'POLYGON', 2);
これらの値で新しいフィールドを更新します。
UPDATE predpol_raw セットボックス = ST_Transform( ST_GeomFromText( format('POLYGON((%s %s, %s %s, %s %s, %s %s, %s %s))', long_high,lat_high, long_low,lat_high, long_low,lat_low, long_high,lat_low, long_high,lat_high )、 4326 )、 2240 );
別の空間参照への変換に注意してください。POLYGON キーワードには、二重括弧 '(( ))' が必要です。