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

PostGISのバージョン2.0では、PostgreSQLオブジェクトリレーショナルデータベースに多数の新しい拡張機能が追加され、空間オブジェクトのサポートが強化されました。

1
PostGISデータベースの命名規則?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 PostGISでデータベースを構築し始めています。このデータベースは、ジオデータと統計を頻繁に使用する約5〜8人の研究チームのためのものです。 データベースをセットアップするときに、命名規則を知っている人はいますか? 私がすでに考え出したいくつかの重要なことは次のとおりです。 小文字のみを使用 use_underscoresはスペースではありません ä、éなどの特殊文字を使用しないでください 1つの言語のみを使用します(つまらないように見えるかもしれませんが、私たちは国際的です) 常に単数形の名前のテーブルと列 データベース内のオブジェクトに名前を付ける標準的な方法、つまりtopic_year_source_formatを見つけます 特に最後のポイントは注意が必要です。私自身のデータを保存することで、時に膨大な名前を取得することを認識しました。したがって、これらの巨大な名前を非常に煩わしいものにするのではなく、簡単にアクセスできるメタデータにこの情報を保存することは別です。

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, …

1
到達可能な領域にポリゴンを構築する
私は現在、等時性と基礎となるアルゴリズムの分野で働いています。現在問題となっているのは、等時線自体の場合の計算ではなく、結果の視覚化です。 私の等時線アルゴリズムの結果は、ポイントとエッジです。実際、私には有効なソリューションがありますが、3873エッジと1529ノードの場合、時間がかかるようです(2015 Core i7 CPUとかなり高速なSSDを含むLenovo T440sラップトップでは約2.0秒)。秒の代わりに、msec :-)のようなものがもっと欲しいです。 たぶん誰かが、到達可能な領域を視覚化するポリゴンを構築するのに必要な計算時間を短縮するのを手伝ってくれるでしょう。 しかし、待ってください...まず最初に! これは、私の等時線の計算結果であるエッジの視覚化です。 これらのエッジはPostGISデータベーステーブルに格納され、単純な線ストリングです。 ユーザーに見せたいのは次のようなもの です。画像の最南端と最東端にある切断された領域に注意してください。これらは個別の領域として描画する必要があります(したがって、ここではマージできません:-)) 現在、私はこのクエリを使用しています: SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), 4326)) AS coverage FROM ( SELECT ST_MakePolygon(ST_ExteriorRing(ST_GeometryN(segments, generate_series(1, ST_NumGeometries(segments))))) AS polygons FROM ( SELECT ST_Union(ST_Buffer("GEOMETRY", 20, 'quad_segs=2')) AS segments FROM my_edges AS a ) AS b ) AS c 私はすでにいくつかの実験を行っており、多くのドキュメントも読みましたが、より良い解決策を見つけることができません。 私の目には、大きな問題はST_Unionの使用です(ドキュメントで述べられているように、この関数は遅くなる可能性があります)。非常に興味深いのは、それをST_Collectで置き換えると、ST_Bufferの計算が遅くなるように見えるため、次のクエリのオールインオールがさらに長くかかりますが、エッジ間の領域は埋められません(ラインの周りにバッファーが作成されるだけです) ): SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), …

1
Postgis 2.0-public.geometry_columnsビューにビューの正しい情報が含まれていない
最近、データベースをPostgis 2.0に更新しました。 私たちのシステムでは、geometry列を含むテーブルのビューを作成するために使用していました。ビューの作成後、geometry_columnsテーブルを必要な情報で手動で更新しました。ビューは、Geoserverレイヤーの作成とogr2ogrのデータのフィードに使用されます。 Postgis 2.0 の問題は、geometry_columnsテーブルが、システムカタログからデータを取得するビューに置き換えられたことです。私たちの場合、作成されたビューでは、「coord_dimension」、「srid」、および「type」列の正しい情報を取得していません。 情報:いくつかの調査の結果、geometry_columnsビューがpg_constraintテーブルを使用してこれらの列を埋めていることがわかりましたが、そのビューには制約が定義されていません。 誰かがこの問題をどのように修正できるか考えていますか?gemetry_columnsビューに必要な情報を取得させるにはどうすればよいですか?これを行うには回避策または他の方法がありますか?

5
OSM道路を交差点で個々のセグメントに分割する方法は?
OpenStreetMapデータを使用してpgRoutingで使用する道路ネットワークを作成したいと思います。GeoFabrikからシェープファイルをPostgresテーブルにロードしました(PostGISを有効にした状態)。しかし、私が抱えていた問題の1つは、道路が常に交差点で終わらないということでした。そのため、すべての交差点または交差点で道路をすべて分割することにしました。 道路が交差または交差するすべての交差点を特定するために、私は次のものを使用しましたSQL(前の質問と同様)。 CREATE TABLE split_points as SELECT DISTINCT ST_GeometryN(ST_Intersection(a.geom, b.geom),1) as geom FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom) OR ST_Crosses(a.geom, b.geom) AND a.gid != b.gid GROUP BY ST_Intersection(a.geom, b.geom); これらのポイントを使用して道路を分割したいと思います。私は次のアプローチを使用しました: CREATE TABLE split_roads as SELECT ST_GeomFromEWKB((ST_Dump(ST_Split(g.geom, blade.geom))).geom) As geom, generate_series(1,ST_NumGeometries((ST_Split(g.geom, blade.geom)))) as gid FROM split_points as …


1
PostGIS:同じ属性値を共有する隣接するフィーチャをマージする方法は?
ラインフィーチャを格納する大きなPostGISテーブルがあります。 互いに接続されていて、属性値が同じであるフィーチャをマージしたいと思います。以下は私が達成したいことの例です。 最も外側のフィーチャ(黒と青のフィーチャ)は、属性値が同じであっても隣接していないため、マージされません 緑と赤の機能は両方の条件に一致するため、統合されます フィーチャーイエローは以前のままです。 SQLクエリでそれをどのように実現しますか?

1
データ品質保証に使用できるPostGIS [トポロジ]提供のツールは何ですか?
GISデータの品質を確保するためのテクニックについて学習しています。周りグーグルで、私は理論と(ベストプラクティスについていくつかの論文見つけたこことここ)、および(ESRIツールを使用してトピックについての短いプレゼンテーションのカップル、こことここを) たとえば、「許容度」と「精度」の概念はArcGISでグローバルに定義されており(私は知りませんでした)、Oracleも「許容度」の概念をグローバルに管理していると思います。一方、私の知る限り、PostGISはGEOSでサポートされているユーザー定義の精度モデルを公開せず、単に浮動小数点数の完全な精度を使用します。 だから、私の質問は、どのPostGIS [トポロジ]提供のツールをデータ品質保証に使用できるかということです。誰かがこのトピックを経験していますか?それとも、間違ったツールを選択しているのかもしれません。

3
pgroutingが有効になっているDBのOSMデータに基づいて、pgr_ *ルーティング関数が永久に実行されるのはなぜですか
osm2po 4.7.7を使用して、ドイツのOSMデータセットをpgrouting DBにロードしました。すべてが正常に動作します。osm2poをconfigで設定すると、Javaパーツを介して魅力的に動作します。 * _2po_4pgrテーブルを問題なくインポートしました。* 2po_vテーブルもインポートされますが、このテーブルの関係は完全にはわかりません。 6mのエッジすべてを計算している間、かなりの時間(12000秒)実行されたpgr_createTopology関数を実行しました。これでうまくいくと思いましたが、それでも耐え難いほど遅いです。 何か忘れてしまったら教えてください。私は、Javaライブラリーの代わりにpgRoutingを使用することを考えていましたが、現時点では、パフォーマンスに関しては比較対象外です。

3
行の開始ノードと終了ノードをPostGISの他の行にスナップする
ラインをポイントにスナップする方法を示す例はたくさんありますが、ラインストリングの開始ノードと終了ノードを他のラインのノードにスナップする(速い!)方法を見つけることができませんでした。 基本的に、私はpostgis(2.0)で自分のレイヤーを「クリーン」にし、ほぼ同様のポイントを一緒に移動し、ラインストリング間の小さな開口部を縫い合わせたいと考えています。 別のノードを追加するか、どちらかの線の最初/最後のノードを移動するか、両方のポイントを中央に移動するかは、それほど重要ではありません。 2つのオプションを見つけましたが、どちらから始めるかわかりません。 トポロジを使用:http : //lists.osgeo.org/pipermail/postgis-users/2012-May/034024.html ラインの分解、ノードのスナップ、ノードのマージ。http://www.mail-archive.com/postgis-users@lists.osgeo.org/msg00174.html 2番目のオプションは実現可能に聞こえますが、この方法を実行する方法についてのヘルプがあれば大歓迎です。


2
Postgis 2.0のビューでSRIDを強制する
非常にトリッキーな問題があります。Geoserver2.1.3のデータストアとして使用されるPostgis 2.0データベースがあります。 SRID 4326で、geometry列(名前付きのシェイプ)を持つテーブルがあります。 私はこのようなビューを作成しました: CREATE VIEW pippo AS SELECT st_geometryn(shape,1) as geom FROM events 次に、geoserverを使用してビューを公開しました。GetFeatureInfoリクエストを除いてすべてが機能し、エラー 'Operation on mixed SRID geometries A simple select * from geometry_columns pippo.geomのSRIDが0であることを返します(ただし4326である必要があります) ビューのこの定義でも試しました CREATE VIEW pippo AS SELECT st_setsrid(st_geometryn(shape,1), 4326) as geom FROM events しかし、geometry_columns .... any helpにSRID = 0がまだありますか? 以下は、Geoserverでのレイヤーの定義方法です。 回避策 問題自体を修正するのではなく、GeoserverがGetFeatureInfoリクエストに対して空間検索を実行できるようにする回避策を見つけました。 ビューを作成して公開する代わりに、ジオサーバーで直接定義されたSQLレイヤーを公開しました。レイヤー定義フォームでは、適切な地理タイプとSRIDを選択することができ、すべてが機能しています。

1
PostGISを使用して(定義された)断片ポリゴンを削除しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 地理情報システムスタック交換のトピックになるように質問を更新します。 10か月前に閉鎖。 SQL(PostgreSQLのPostGIS用)を作成して、最も長いエッジを持つ隣接するポリゴンとマージすることにより、データセットからスリーバーポリゴン(元のデータセットで誤った「ギャップ」であった細長いスリーバーと小さな不規則なポリゴンを含む)を削除するにはどうすればよいですか? データセット(テーブル名: "Vegetation"があり、説明列(列名: "desc")にスリーバーまたは "実際の"ポリゴンとして識別される数千のポリゴンが "sliver"または "main"として含まれています。[編集:事前データセットをPostGISにインポートするには、GRASSにインポートすることでクリーンアップしました(これは、すべてのギャップを小さなポリゴンに変換した後、メインデータセットとマージした方法です。スナップ許容値と過去の最小領域を増やしたかどうかを確認しました ' GRASSインポートの1 'で、目的の機能が失われ始めました。] 私の理解では、次の手順が必要になる場合があります。 最も長いエッジを共有する各スライバー(Vegetation.desc = "sliver")に隣接するポリゴン(Vegetation.desc = "main")を特定します。 各スライバーとその隣接するメインポリゴンの間のエッジを特定します。ステップ1で特定した最長のエッジを共有します(おそらくST_Relateを使用します)。 ステップ2で返されたエッジIDを使用して、各スライバーと隣接するメインポリゴンの間のエッジを削除します(おそらくST_RemEdgeModFaceを使用します)。 私はSQLについて非常に基本的な知識しか持っておらず、上記のプロセスは私の能力を超えています。

6
QGIS 1.8.0からPostgisに接続できません
PostgreSQLとPostGISをラップトップ(Win 7 64ビットOS)にインストールしました。私のマシンでQGIS 1.8.0を実行しています。 Postgisに接続しようとすると、接続失敗エラーが発生し、次のことを試みました: 詳細: ポート:5433ユーザー名:postgresパスワード:postgres pg_hba.confファイルを確認しました(すべてデフォルト設定) PostgreSQLサービスを再起動して試しました PostsreSQLを再インストールしたところ、同じエラーが発生しました。 接続中に空のフィールドを使用しようとしたが、まだエラーが発生する。(何をサービスフィールドに配置するかわからない.. postgresとpostgresqlを使用して試しました) ファイアウォールが無効になっています。 データベースPostgreSQL(バージョン9.2)はローカルマシンにインストールされ、postgis(バージョン2.0.3-2)はマシンにインストールされています。どちらも64ビットセットアップ用です。 7. qGISでPostgresqlの下位バージョンを試してみるべきですか? Googleで調査したところ、接続の問題に関連する同様のバグが見つかりました(不明)

3
raster2pgsqlを使用してPostGISにジオティフをロードする
いくつかのOrdnance SurveyラスターデータをPostGISに読み込むときに問題が発生します。次のraster2pgsqlコマンドを使用して、C:\ Program Files \ PostgreSQL \ 9.1 \ binフォルダに配置したtifをPostGISにロードしています。 raster2pgsql -s 27700 -t 5000x5000 -I -C -M *.tif > os_strview.sql 次に、次のpsqlコマンドを実行します。 psql -h localhost -U postgres -d raster_test -f os_strview.sql これは正常に機能しますが、QGISでデータを表示しようとすると、PostGISレイヤーを追加しようとしたときに、選択ボックスにraster_columnsテーブルしか表示されませんでした。 代わりに、プラグインLoad Post raster to PostGISを使用してみました。これは機能しますが、ラスターイメージに色がありませんでした。その後、この投稿を見ました。「ラスター」>「変換」>「PCT to RGB」テクニックを使用して、単一のtifをgeotifに変換しました。 残念ながら、上記のpsqlコマンドを実行すると、次のエラーメッセージが表示されます。 C:\ Program Files \ PostgreSQL \ 9.1 \ bin> psql …

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