PostGISを使用してテーブルの緯度/経度からジオメトリを作成しますか?


13

緯度と経度の列を含む、80万件を超えるレコードを持つテーブルがあります。データソースはジオメトリを作成しなかったため、これを行う方法を探していました。ST_MakePoint(x、y、SRID)があることは知っていますが、すべてのドキュメントと他のスレッドは、単一のポイントを作成する方法を示しています。これらの列を使用してジオメトリタイプを作成するにはどうすればよいですか?


1
これらのポイントから線を作成することを意味しますか?ポイントはラインやポリゴンと同じようにジオメトリなので...これらのポイントからラインを作成する場合は、Paul Ramseyからの最近のブログ投稿を確認してください:blog.cleverelephant.ca/2015/03/making-lines-from -points.html
DPSSpatial

いいえ。それらを空間クエリで使用されるジオメトリタイプに変換するようなものです。私の質問には回答した​​ようですが、ありがとうございます!
dknuth

回答:


28

PostGISの新しいバージョンでは、次の、やや一般的な構文を使用できます。

ALTER TABLE your_table ADD COLUMN geom geometry(Point, 4326);

次に、ST_SetSridおよびST_MakePointを使用して列にデータを入力します。

UPDATE your_table SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

こちらのドキュメントをご覧ください:


14

まだジオメトリ列を追加していない場合(ここではEPSG:4326を想定):

SELECT AddGeometryColumn ('your_table','geom',4326,'POINT',2);

次にUPDATE、xフィールドとyフィールドの名前を渡します。

UPDATE yourtable SET geom = ST_SRID(ST_MakePoint(longitude, latitude), 4326);

WHERE句を含めない限り、これによりテーブル全体が更新されます


2
ST_SRIDはST_SetSRIDである必要があると思います。ST_SRIDを使用するとエラーが発生する
Vipin Gupta
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.