PostGISのジオメトリSRIDの問題


10

PostGISで自分のテーブルを作成しました

id_borne serial NOT NULL,
  num_borne character varying,
  shape_borne geometry

を使用してテーブルのSRIDを正常に変更しました

select UpdateGeometrySRID('public', 'borne', 'shape_borne', 26191) ;

以前のSRIDは0でした。

問題は、テーブルborneに新しい要素を追加しようとすると、次のメッセージエラーが発生することです。

geometry srid (0) does not match column srid (26191)

ここに画像の説明を入力してください

それが私の問題です!SRIDは更新されていますが、新しいポイントを追加しようとすると、このメッセージが表示されます。


2
データを挿入する前に、テーブルに一致するSRIDをデータに指定してください。
Ian Turton

わかりません。データのsridはテーブルのsridです。同じですね?
Yahia El Haddad 14

1
挿入ステートメントの1つを見せていただけますか?
Ian Turton

このように:INSERT INTO borne(num_borne、shape_borne)VALUES(1、POINT(25800、256000));
Yahia El Haddad 14

1
insertステートメントのジオメトリにsridがありません。それがエラーの原因です
Devdatta Tengshe 2014

回答:


13

挿入しようとしているデータにSRIDが割り当てられていません。1つを割り当てるには、ST_SetSRID()を使用して、挿入されたジオメトリをinsertステートメントでラップしてみてください。例えば、

INSERT INTO public.borne (num_borne, shape_borne) 
    (SELECT num_borne, ST_SetSRID(shape_borne, 26191)
     FROM public.sometable);

または

INSERT INTO public.borne (num_borne, shape_borne) 
VALUES (1, ST_SetSRID(ST_MakePoint(25800 , 256000), 26191));

私はいくつかのテーブルを持っていません
ヤヒアエルハダッド

ユースケースを含むように更新されました。
MakinFlippyFloppy 2014

うまく行かなかった !
Yahia El Haddad 14

エラーメッセージは何ですか?また、実行してみてくださいselect find_srid('public', 'borne', 'shape_borne');。sridが実際にフィールドに設定されていることを確認してください。
MakinFlippyFloppy 2014

大丈夫です!INSERT INTO public.borne(num_borne、shape_borne)VALUES(1、ST_SetSRID(ST_MakePoint(25800、256000)、26191))を使用して機能します。このテーブルに追加するには、ST_SetSRID(ST_MakePoint(...)を使用する必要がありますか?他のテーブル(parcelle)の場合、通常のexmpleのリクエストで動作します:INSERT INTO parcelle(num_parcelle、shape)VALUES(1、POLYGON(( 0 0、1 0、1 1、0 1、0 0)));
Yahia El Haddad 14

6

ジオメトリのWKTをpgAdmin IIIに入力する場合は、EWKT構文を使用してSRIDを指定する必要があります。それ以外の場合は、デフォルトで0になります。

これをpgAdmin IIIのジオメトリフィールドに入力します。

SRID=26191;POINT(25800 256000)

それ以外の場合、@ MakinFlippyFloppyには、ST_SetSRIDを使用した正しいSQLの方法があります。


0

私はリンクの下に細くすることがあなたを助けることができます、以下のページをチェックしてください::

http://postgis.org/docs/UpdateGeometrySRID.html


私はすでにこの機能を使っています!
Yahia El Haddad 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.