タグ付けされた質問 「postgis」

PostGISは、PostgreSQLオブジェクトリレーショナルデータベースの拡張機能で、地理オブジェクトのサポートを追加します。

4
ST_Intersectionスロークエリ
2つのレイヤー間の交差を実行しようとしています。 一部の道路を表すポリラインレイヤー(最大5500行) さまざまなポイント(約47,000行)の周りの不規則な形状のバッファーを表すポリゴンレイヤー 最終的に、私がやろうとしているのは、ポリラインをこれらの多くの(場合によってはオーバーラップする)バッファーにクリップし、各バッファーに含まれる道路の全長を合計することです。 問題は、物事がゆっくり実行されていることです。これにどれくらい時間がかかるかはわかりませんが、34時間を超えるとクエリを中止しました。私は誰かが私のSQLクエリで間違いを犯した場所を指摘するか、これを行うより良い方法を教えてくれることを望んでいます。 CREATE TABLE clip_roads AS SELECT ST_Intersection(b.the_geom, z.the_geom) AS clip_geom, b.* FROM public."roads" b, public."buffer1KM" z WHERE ST_Intersects(b.the_geom, z.the_geom); CREATE INDEX "clip_roads_clip_geom_gist" ON "clip_roads" USING gist (clip_geom); CREATE TABLE buffer1km_join AS SELECT z.name, z.the_geom, sum(ST_Length(b.clip_geom)) AS sum_length_m FROM public."clip_roads" b, public."buffer1KM" z WHERE ST_Contains(z.the_geom, b.the_geom) GROUP …

2
QGISで関連レコードをどのように表示しますか?
esriのバックグラウンドから来て、私は常に機能に関連するレコードを表示するためにgdbでリレーションシップクラスを使用しました。例えば。1つの調査ポイントを多くの文書、写真などに関連付けます。 QGISで似たようなことをする方法を知っている人はいますか? 安藤 PS私はPostGreSQL 8.4.1とPostGIS 1.4を使用しており、私のクライアントはQGISです。



2
親ポリゴンの交差を再帰的にループして、オーバーラップのない最小の(子)ポリゴンを取得する方法は?
私は2日間問題に取り組んでいますが、トピックがPostGIS(v2.5)の交差部分である場合、多くの人が行き詰まることにも気づきました。そのため、より詳細で一般的な一般的な質問をすることにしました。 次の表があります。 DROP TABLE IF EXISTS tbl_foo; CREATE TABLE tbl_foo ( id bigint NOT NULL, geom public.geometry(MultiPolygon, 4326), att_category character varying(15), att_value integer ); INSERT INTO tbl_foo (id, geom, att_category, att_value) VALUES (1, ST_SetSRID('MULTIPOLYGON (((0 6, 0 12, 8 9, 0 6)))'::geometry,4326) , 'cat1', 2 ); INSERT INTO tbl_foo (id, …
11 postgis  sql 

1
QGISでラスターPostgreSQLテーブルを視覚化する
次のコマンドを使用して、ラスターtif画像をPostgreSQLにインポートしました。 raster2pgsql -s 32643 -I -M filepath.tif -F -t 100x100 public.databassename > filepath.sql そして、これを実行しているPostgreSQLデータベース内に出力SQLファイルをインポートしました。 psql -U postgres -d databasename -f filepath.sql QGISでこのデータベースに接続した後、ジオメトリコンテンツが欠落しているため、tif画像を視覚化できません。QGISでtifラスター画像を視覚化するのを手伝ってください。


2
2つ以上の軌跡間の類似性
トラックのデータがあります(http://www.chorochronos.org/)。 このデータは、アテネのトラックの複数の軌跡のGPS座標です。 非常に類似しているものを削除するために、軌跡間の類似性を計算する必要があります! 赤と緑は似ていますが、青、黒、(赤または緑)は異なる軌跡です。赤または緑の類似のものを削除したい。 データはポイント(geometry、latとlong、xとy)(座標gps)であり、画像は軌跡の例です

2
あるPostGISレイヤーから別のレイヤーにフィーチャをコピーするときに、GIDの重複を回避するにはどうすればよいですか?
別のPostgresレイヤーに新しい要素(機能)を入力する場合、次の2つの方法で行うことができます。 まれに新しい要素を描画する(「機能の追加」を使用)または 別のPostgreレイヤー(ソースレイヤー)からいくつかの要素をコピー(またはカット)し、頻繁に行うターゲットレイヤーに貼り付けます 最初の例では、このレイヤーがpostgreデータベースシーケンスからgidを取得するため、編集の保存は正常に機能します* nextval( 'layer_name_gid_seq' :: regclass)* 2番目の例では、ソースレイヤーからターゲットレイヤーに要素をコピーしているときにqgis がソースレイヤーから要素のgidをコピーしたため、編集の保存中にエラーが発生しました 。編集を保存しようとすると、次のエラーが返されます。 レイヤー「Cjevovodi」への変更をコミットできませんでした エラー:エラー:1つの機能が追加されていません。 プロバイダーエラー: 機能の追加中のPostGISエラー:エラー:重複するキー値が一意の制約 "cjevovodi_okill_pkey"に違反しています 詳細:キー(gid)=(5)は既に存在します。 * nextval( 'layer_name_gid_seq' :: regclass)*をフィールドgidにコピーしようとしましたが、フィールドが数値として定義されているため、このシーケンスをフィールドgidに貼り付けることはできません。 (既存のgidで)ソースレイヤーから要素をコピーして新しいgidを割り当てる簡単な方法を知っている人はいますか? ありがとう!
11 qgis  postgis 

1
インデックス作成を視覚化していますか?
PostGISのGiSTインデックスからどのような視覚化/統計を取得できますか? ウィキペディアのRツリーエントリを見ると、ELKIを使用して、さまざまなRツリーのバリエーションとそれぞれの境界ボックスの視覚化があります。GiSTインデックスは、Rツリーインデックスに似ています。では、この種の視覚化(おそらくQGISによる)のためのメソッド/拡張機能はありますか? 編集:ここでも視覚化されています-これはどのように達成されますか?

3
ST_Differenceを使用して重複するフィーチャを削除しますか?
ST_Differenceを使用して、PostGis 2.1(およびPostgres SQL 9.3)を使用する別のポリゴンのセット(test.single_geometry_1)でカバーされる領域を含まないポリゴンのセット(processing.trimmedparcelsnew)を作成しようとしています。これが私のクエリです: CREATE TABLE processing.trimmedparcelsnew AS SELECT orig.id, ST_Difference(orig.geom, cont.geom) AS difference FROM test.single_geometry_1 cont, test.multi_geometry_1 orig; しかし、結果のポリゴンはトリミングされておらず、代わりに他のレイヤーと交差する場所で分割されているようです。結果をテーブルに入れずにselectを実行するだけで、他に考えられるすべてのものを試しましたが、この関数を機能させることができません。 結果の写真を添付し​​ました コメントの後、WHERE句を追加してみました。交差のないパーセルと、他のパーセルの交差する領域を削除します(レイヤーtest.single_geometryは、パーセルから削除する汚染を表します)。交差を試してみましたが、もちろん実際には非交差が必要なので、分離を試行しています。また、テーブルにorigを追加しようとしましたが、ST_Difference(http://postgis.net/docs/ST_Difference.html)のドキュメントには、必要な正確なジオメトリ(ジオメトリAのその部分を表すジオメトリ)が返されると記載されていますはジオメトリB)と交差しないため、テーブルの元のポリゴンを代わりに使用する理由がわかりません。とにかく、ここに私の変更されたコードがあります: CREATE TABLE processing.trimmedparcelsnew AS SELECT orig.id, ST_Difference(orig.geom, cont.geom) AS difference, orig.geom AS geom FROM test.single_geometry_1 cont, test.multi_geometry_1 orig WHERE ST_Disjoint(orig.geom, cont.geom); dbastonの回答に続いて、私は今試しました: CREATE TABLE processing.parcels_trimmed AS SELECT id, …

3
postgisテーブルの重複するジオメトリを削除する
後-何が起こったのかわかりません-PostGISテーブルのすべてのエントリが2倍になりました!私はこれを削除しようとしましたが、重複は削除されません: DELETE FROM planet_osm_point WHERE osm_id NOT IN (SELECT min(osm_id) FROM planet_osm_point GROUP BY osm_id) またはこれ: DELETE FROM planet_osm_point WHERE osm_id NOT IN ( select max(dup.osm_id) from planet_osm_point as dup group by way); 編集: 私はついに簡単な方法を見つけました、それは私の場合に機能しています: DELETE FROM planet_osm_point WHERE ctid NOT IN (SELECT max(ctid) FROM planet_osm_point GROUP BY osm_id); このページにあります:http …


1
ラインストリング上にある間、ランダムなフィッシュネットのセルに互いに指定された距離でポイントを作成します
1x1 kmセルのフィッシュネットを受け取る陸上プロトコルがあります。一部のセルはランダムに選択されます。各セルに4つのポイントを配置する必要があり、これらのポイントも道路上になければなりません。ポイント間の最小距離は、すべての細胞のすべてのポイントのために500メートルでなければならない、可能な場合、またはそれがない場合は、我々は可能な最大距離を求めています。 最初の試行では、ST_CreateFishnetを使用してすべてのセルを4つの500x500 mセルに分割し、次にサブセルの重心にポイントを配置してから、最も近い道路(ST_ClosestPoint)に配置します。いくつかの良い結果が得られますが、以下の例では、ポイント5が6から近すぎるため、左側の道路に移動できることがわかります。 WITH r1 AS ( -- only sub-cells which intersects random cells SELECT id_maille, ROW_NUMBER() OVER() AS id_grille, fishnet_500.geomgrille FROM fishnet_500 JOIN t_mailles ON ST_Intersects(ST_Buffer(t_mailles.geom,-200), fishnet_500.geomgrille) -- buffer < 0 to not select neightbours ) , r2 AS ( -- cut roads in every cells SELECT id_maille, …

2
SSHキーを使用してQGISをリモートPostgreSQLデータベースに接続しますか?
リモートサーバー(Vagrant)でroot権限を持つユーザー名、パスワード、およびsshキーを作成しました。通常の方法で接続しようとしていますが、パスワード認証に失敗します。同じ資格情報を使用してサーバーにSSHで正常にログインできます。 QGISを構成してsshキーを使用してPostgreSQL / PostGISに接続するにはどうすればよいですか?

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