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

PostgreSQLは、オープンソースのオブジェクトリレーショナルデータベースシステムです。

2
1つのクエリでPgRoutingを使用して複数の最短パスを取得しますか?
複数のソースとターゲットのペアで最短経路アルゴリズムを一度に実行し、結果をテーブルとして取得して処理したいです。 どうすればいいですか?このクエリは機能しません: SELECT a.source, a.target, paths.* FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths; ERROR: function expression in FROM cannot refer to other relations of same query level (ところで、all_to_allは文字通りすべてを意味するわけではありません、:)それは単なるランダムなペアの数です) これも機能しません: SELECT * FROM all_to_all a, ( SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy ) AS t2;

5
OpenStreetMap PostGISクエリの高速化
浸透スキーマを使用して、オランダのOpenStreetMapデータをPostGISデータベース(PostgreSQL 8.3 / PostGIS 1.3.3)にロードしました。これは、すべてのタグがhstoreフィールドに保存されることを意味します。浸透がジオメトリフィールドに作成するGISTインデックスに加えて、タグフィールドに追加のGISTインデックスを作成しました。 空間制約とタグフィールドの制約の両方を使用してクエリを実行しようとすると、思ったよりも遅いことがわかりました。このようなクエリ: SELECT n.geom,n.tags,n.tstamp,u.name FROM nodes AS n INNER JOIN users AS u ON n.user_id = u.id WHERE tags->'man_made'='surveillance' AND ST_Within(geom, ST_GeomFromText('POLYGON((4.0 52.0,5.0 52.0,5.0 53.0,4.0 53.0,4.0 52.0))',4326)); 78レコードを返すのに22秒かかります。 このテーブルには、約5,300万件のレコードがあります。 これを大幅にスピードアップする方法はありますか?PostgreSQL 9でhstoreの実装が大幅に改善されたと聞いたことがありますが、アップグレードは役に立ちますか?

4
PostGISデータベースに適したグローバル/ユニバーサル一意識別子とは何ですか?
OIDをpostgreSQL / PostGIS dbの主キーとして使用することは、これらをリセットできるインスタンスがあるため、お粗末な慣習であると読みました。論理的に聞こえますが、適切な代替手段は何ですか?「Universal Unique Identifer」UUIDを使用するオプションがあると思いますが、吐き出される大きなテキストと数値は恐ろしいです。 私の状況のもう少し背景。「gid」というフィールドで作成されたすべての空間テーブルがあります。これは、そのテーブルの主キーであり、そのテーブルにのみ一意です。空間テーブル(1から始まり増分する「gid」フィールドを持つすべて)を関連情報を持つ1つの大きなテーブルに関連付けるため、問題が発生しました。私の関係が機能するためには、明らかに私のすべての空間的特徴には、それらを互いに区別する一意の識別子が必要です。 編集ピーターズのコメントに従ってこの画像を追加しました。ピーターこれは私が私の頭の中に持っているアイデアです、それについて行くための最良の方法ではないかもしれません、またはそれは良いDBデザインでさえないかもしれません。あなたの考えに興味があります。 任意のヒント?

4
postgisインストールでshp2pgsqlが見つかりません
このガイドに従ってpostgisをインストールしました。大丈夫。 SELECT postgis_full_version(); "POSTGIS="2.1.7 r13414" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.1, released 2013/08/26" LIBXML="2.9.1" LIBJSON="UNKNOWN" TOPOLOGY RASTER" ただし、次のようにshp2pgsqlがありません/usr/lib/postgresql/9.4/bin。 foo@bar:/usr/lib/postgresql/9.4/bin$ ls clusterdb initdb pg_dump pg_standby psql createdb oid2name pg_dumpall pg_test_fsync reindexdb createlang pg_archivecleanup pg_isready pg_test_timing vacuumdb createuser pg_basebackup pg_receivexlog pg_upgrade vacuumlo dropdb pgbench pg_recvlogical pg_xlogdump droplang pg_controldata pg_resetxlog …

2
マルチポイントとポイントPostGIS
1つのポイントのみを格納するために使用することを知っているため、「ポイント」の代わりに「マルチポイント」のジオメトリタイプを使用するのは正常ですか? マルチポイントからポイントに変換するにはどうすればよいですか?

2
PostGISでジオメトリをクリーニングしますか?
非常に大きなポリゴンレイヤーで処理を実行しようとしています。ただし、次のようなさまざまなジオメトリエラーが発生しています。 NOTICE: Ring Self-intersection at or near point 470396.52017068537 141300.52235257279 CONTEXT: PL/pgSQL function st_intersection(geometry,raster,integer) line 10 at RETURN QUERY SQL function "st_intersection" statement 1 NOTICE: Ring Self-intersection at or near point 504154.61769969884 140782.04115761846 CONTEXT: PL/pgSQL function st_intersection(geometry,raster,integer) line 10 at RETURN QUERY SQL function "st_intersection" statement 1 NOTICE: Ring Self-intersection …

1
QGISでPostGISレイヤーとの同時作業を高速化する方法は?
同時に1つの大きなレイヤー(10〜20人)で作業しています。私たちの中には、QGIS 2.8.1と他の2.6を使用する人がいます。2.8のユーザーには多くのクラッシュがあります(QGIS)。2.6ユーザーにはこのクラッシュはありませんが、機能を追加するのは非常に遅いです。Postgres 9.4サーバーは、Win7を搭載した仮想マシン(Hyper V)で実行されています。たぶんそれはネットワークであり、QGISではないのでしょうか?たぶん誰かがアイデアを持っている。素晴らしいことだ :)

1
複数のシェープファイルをPostgisにバッチロードする
shp2pgsqlヘルプによると、オプションdrop、append、createおよびprepareは相互に排他的です。そのため、シェイプからテーブルを作成し、他の複数のシェープファイルを追加する場合、次のような操作を行い、作成モードか追加モードかを示すカウンターを保持します。 cnt=0 for shp in $(ls *.shp); do if [ $cnt -eq 0 ] ; then shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db else shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db fi ((cnt++)) done これは予想どおりに機能しますが、もっと簡単な方法があるのではないかとよく疑問に思います。

1
隣接するポリゴンをマージし、すべて(隣接していて隣接していない)をマルチポリゴンとして返しますか?
管理境界とそのジオメトリを持つpostgresデータベースがあります。これらの境界にはそれぞれ識別番号があります。 私が達成したいこと: 最初に、特定の郵便番号で始まるすべての行を選択します。例えば: SELECT * FROM "post" WHERE "post"."ident" LIKE '101%' 隣接するすべてのジオメトリをマージし、そうでないジオメトリも返す必要があります。 私はこれらのステートメントを試しました: これは私がこの答えから持っています: PostGISを使用して多くの小さなポリゴンを結合して大きなポリゴンを形成しますか? with t as ( select (st_dump(geom)).geom from "post" where "post"."ident" LIKE '593%' ) select ST_UNION(geom) from t; しかし、このステートメントは、隣接しているが他のポリゴンは含まれていないポリゴンのみを返します with t as ( select (st_dump(geom)).geom from "post" where "post"."ident" LIKE '593%' ) select ((ST_Dump(ST_UNION(geom)))) from t; …

2
GeoserverおよびPostGISデータストアでレイヤーが公開されるときに、日付値に末尾の「Z」が表示されるのはなぜですか?
Geoserver 2.2.xとPostGIS 2.0.1(PostgreSQL 9.1.x)データストアを使用してさまざまなレイヤーを公開しました。日付値のみを持ち、時間/タイムスタンプ関連の値を持たないフィールドは、日付として保存されます。レイヤーをwfs / wmsとして公開し、ブラウザーでテーブルを開くと、vluesの末尾に「Z」が表示されます。 これは、ジオサーバーが使用しているgeotoolsデータストアAPIの製品ですか? ジオツールのデータストアAPIは、日付、タイムスタンプなどのデータ読み取り日付にブランケットを投げかけ、zulu時間に「z」が表示されると思います。私はジオツールの仮定で完全にオフにすることができますが、PostgreSQLでは「z」はzuluまたはutcを表します。 データソースの値が日付として保存され、時間コンポーネントがない場合、日付フィールドに末尾の「Z」があるのはなぜですか

1
PostGIS / PostGresQLの最大オーバーラップに基づいて参加しますか?
2つのテーブルに2セットのポリゴンがあります。セットは互いにオーバーラップします。セットAの各ポリゴンについて、最も重なるセットBのポリゴンのIDを取得します。PostGIS拡張機能を備えたPostgreSQLを使用しています。 SQLについては、true / false条件に基づいてしか参加できないことを知っています。したがって、これは機能しません: SELECT a.id as a_id, b.id as b_id, FROM a JOIN b ON max(ST_Area(ST_Intersection(a.geom, b.geom))) max()をON句に含めることはできないためです。 ST_Intersects()は真/偽のテストであるため、それに参加できますが、セットAのポリゴンはセットBの複数のポリゴンと重複することが多く、どれが最も重複するかを知る必要があります。ST_Intersectsは、重複の範囲に関係なく、最初に遭遇した重複IDを単に返すだけです。 これは実行可能であるように思えますが、それは私を超えています。何かご意見は?

1
同じジオメトリテーブルの2つのポイントに対する単純なPostGIS ST_Distanceクエリ?
注:この質問は、最初にStackoverflowで公開されました。 ジオメトリテーブルpoints_tableとSRID 4326いくつかのポイントがあります。 このテーブルから一対のポイント(フィーチャ)間の距離を見つける必要があります。 で1つのポイントを選択しid = X、別のポイントでを選択id = Yし、ST_Distance関数でそれらの間の距離を見つけたいと思います。 データベースからこれらの2つのポイントを照会する方法を知っています。 select * from points_table where id = X or id = Y; しかし、このクエリは結果を返します。2つのパラメータを取るST_Distanceため、に渡す方法がわかりませんST_Distance。 私が試してみました Select ST_Distance(select the_geom from points_table where id = X or id = Y); しかし、明らかに間違っています。 テーブルから2つのジオメトリポイント(フィーチャ)間の距離を見つけるにはどうすればよいですか? PSこれまでに見つけたすべての例は、ST_Distance関数の引数にハードコードされたポイントを使用したST_Distanceの使用法を示しています。ST_Distanceを使用して同じテーブルの2つのポイント間の距離を計算する例は見つかりませんでした。

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

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)であり、画像は軌跡の例です

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