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

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

1
Postgis-ポリゴンを押し出す
postgisでポリゴンシェイプを押し出し、疑似3D効果を作成したい。この目的のために、私はそれを達成するための粗雑な関数を書きました。これは非常に多くのテストコードであり、ポリゴン上の各ポイントに対して新しいY頂点を作成し、元のポイントに戻ることで閉じます。 CREATE OR REPLACE FUNCTION public.extrude_polygon(wkb_geometry_param geometry, height integer, simplify boolean DEFAULT false) RETURNS geometry AS $BODY$ DECLARE f int; ret_geom geometry; wkb_geometry geometry; BEGIN --convert polygon to linestring IF ST_GeometryType(wkb_geometry_param) != 'ST_Polygon' THEN RETURN NULL; END IF; IF simplify THEN wkb_geometry = ST_Simplify(ST_Transform(ST_Exteriorring(wkb_geometry_param), 27700), 0.5); ELSE wkb_geometry = ST_Transform(ST_Exteriorring(wkb_geometry_param), …

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
ST_Unionを使用してArcGIS for DesktopからDissolveと同等の方法を実現するにはどうすればよいですか?
PostGISのST_Unionを使用してArcGIS for DesktopのDissolveツールと同等の機能を実現しようとしていますが、期待どおりの結果が得られないようです。 Polygon Geometryの特定の属性を持つテーブルが1つあります。(FID、Locstat、Loccnt、Shapeなど) 私のクエリは次のとおりです。 SELECT c.fid, ST_Union(c.boundaryshape) FROM c Group by c.fid,c.boundaryshape;

2
トポロジとベクターの融合のためのArcGIS 10.Xに代わるデスクトップGISはありますか?
GISでトポロジルールと自動トポロジ整合性を強制するためのArcGIS for Desktop以外のオプションはありますか?フィーチャをいくつかのベースレイヤーの境界に自動的にスナップする(データセットのギャップとオーバーラップを排除する)ものを探しています。 PostGISトポロジ関数については知っていますが、デスクトップGISに何かが欲しいです。 QGIS 2はトポロジルールを実装しようとしていますが、データを自動的にクリーンアップするものはありません。 EsriのArcGIS for Desktopは実際に唯一のソリューションですか?

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を単に返すだけです。 これは実行可能であるように思えますが、それは私を超えています。何かご意見は?

2
PostGISで時間に関してポイントクラスターを識別および簡素化する方法
空間データベースの使用を開始したばかりで、生のGPSトラックを自動で一般化するためのSQL(PostGIS)クエリを作成したい(追跡頻度を固定)。私が最初に注目しているのは、「yメートルの距離内にあるxポイント」のようなクエリの形式で停止ポイントを特定し、代表的なポイントで巨大なポイントクラウドを置き換えるクエリです。特定の距離内でポイントをスナップし、スナップしたものをカウントすることは既に実現しました。下の図では、未加工のサンプルトラック(小さな黒い点)と、スナップされた点の中心が色付きの円(サイズ=スナップされた点の数)として表示されています。 CREATE table simplified AS SELECT count(raw.geom)::integer AS count, st_centroid(st_collect(raw.geom)) AS center FROM raw GROUP BY st_snaptogrid(raw.geom, 500, 0.5) ORDER BY count(raw.geom) DESC; 私はこのソリューションに非常に満足していますが、時間の問題があります:トラックを1日コースとして都市でイメージすることで、その人は以前に訪れた場所に戻ることができます。私の例では、濃い青色の円は、彼が2回訪れた人の家を表しますが、もちろん私のクエリはそれを無視します。 この場合、洗練されたクエリは、連続するタイムスタンプ(またはID)を持つポイントのみを収集する必要があるため、ここでは2つの代表的なポイントが生成されます。最初のアイデアは、クエリを3Dバージョンに変更することでした(3番目の次元としての時間)が、うまくいかないようです。 誰か私にアドバイスはありますか?私の質問が明確であることを願っています。 ラインアイデアをありがとう。下のスクリーンショットでわかるように、ラインストリングを作成して単純化することに気付きました(ドットは元のポイントです)。 私がまだ必要なのは、理想的には到着時間と出発時間を持つ1つのポイントとして、休憩場所(半径<xメートル内のxポイント)を決定することです...他のアイデアはありますか?
11 postgis  point  time 

2
PostGISデータベースにラスター情報を入力することの利点/欠点は何ですか?
...ラスタをローカルに保存されたGEOTIFFとして保持するのではなく、 OpenLayersベースのWebマップにWMSとして約50,000、10 MBのGEOTIFFを提供する必要がある大規模なプロジェクトがあります。常に1つのWMSのみが表示されるため、パフォーマンスは問題になりません。このアプリケーションのMapServerとGeoServerを検討しています。 このタイプのデータを保存することの利点と欠点を知りたいです。ラスターデータの変更がより困難な場合、単一(または一連の)ラスターファイルを置き換えるのではなく、PostGISデータベースを更新します。WMSの読み込み時間はPostGISで大幅に改善されましたか?
11 postgis  raster 

1
プライベートシェープファイルデータをOSMデータと統合(マージ)する
バックグラウンド GeofabrikからアルバータOSMデータをダウンロードし、PostgreSQL 9.1、PostGIS 2.0、Mapnik 2.1.0、osm2pgsql、Apache 2、mod_tile、rendered、およびOpenLayersを使用してプライベートLinuxサーバーで実行します。 データはosm2pgsql次のようにインポートされました。 osm2pgsql -W -K -S /usr/local/share/osm2pgsql/default.style -d osm alberta.osm.bz2 問題 アルバータ州のOSMデータは不完全です。OSMデータを改善する一連のシェープファイルが提供されました。 City.dbf, City.prj, City.sbn, City.sbx, City.shp, City.shp.xml, City.shx さらに、村、都市部、市区町村の境界などの追加のシェープファイル。pgAdmin プラグインを使用して、シェープファイルをPostgreSQLに正常にインポートしました。このCity.prjファイルには、その投影法が次のように記述されています。 GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] シェープファイルデータとOpenStreetMap(OSM)データにはそれぞれ独自のデータベースがありますが、シェープファイルデータをOSMデータベースにインポートしたいと考えています。(これはプライベートサーバーであり、OSMデータのローカルコピーです。シェープファイルデータは合法的に共有できません。) アップデート#1 明確にするために、シェープファイルには道路が含まれていません。自治体の境界(OSMデータの一部ではないこと)、都市(OSMデータの一部である)、および大都市の都市境界(一部である可能性がある) OSMデータと競合しています)。 質問 新しい都市がマップに表示されるように、シェープファイルデータをOSMデータとマージするにはどうすればよいですか? 注:私の主な関心事は、重複データの解決です(たとえば、エドモントンはOSMと調達されたシェープファイルの両方にリストされています)。 関連リンク http://wiki.openstreetmap.org/wiki/Shapefiles http://wiki.openstreetmap.org/wiki/Import/Shapefile http://wiki.openstreetmap.org/wiki/Convert_shp_to_osm_using_grass_and_gpsbabel https://github.com/wavded/js-shapefile-to-geojson http://redmine.yellowbkpk.com/projects/list_files/geo http://www.gdal.org/ogr2ogr.html http://wiki.openstreetmap.org/wiki/Ogr2osm https://github.com/andrewguertin/ogr2osm http://svn.openstreetmap.org/applications/utils/import/shp2osm/ http://crschmidt.net/blog/archives/354/polyshp2osm/ http://www.mail-archive.com/talk@openstreetmap.org/msg12487.html ありがとうございました!

3
Web経由でPostGIS / GeoServerデータを編集しますか?
PostGISをインストールしました。簡単な編集を行うためにWebアプリケーションを作成したいと思います。 スナップポイント(ポイント、ラインの終点、交点、円の中心)を使用して、手動で(ベースマップ上に)ポイント、ライン、ポリラインを描画します ポイント、ライン、ポリラインを削除する 点を中心に線または線のグループを回転する 基点を使用して線または線のグループを移動する ポリラインとポイントを手動で移動し、座標で指定されたポイントに移動します ポリラインとラインの頂点の位置を編集します(手動で、座標で指定されたポイントまで) ポイント、ライン、ポリラインの周りにバッファを作成します Web経由でこれを行う最良の方法はどれですか?ビルド済みのJavaScriptライブラリはありますか?

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つのポイント間の距離を計算する例は見つかりませんでした。

3
巨大なラスター時系列用のWebマッピングソフトウェアですか?
私は、Webマッピングの世界に初めて足を踏み入れたArcGIS Desktopユーザーです。ここでGIS.SEで見つけたアドバイスに従って、OpenGeoからの無料のチュートリアルから始めました。 しかし、デモと例のほとんどがベクトルデータ向けであることを認識し始めました。私の主なプロジェクトには、5000 x 5000ピクセルのラスターの300フレーム時系列の表示が含まれます。私のデスクトップコンピューターでは、これらは単一の5000x5000x300 16ビット整数BIPバイナリ(合計約8GB)に保存されています。 私の目標は、セル(時系列の1つのラスター)をクリックし、300要素の時系列のそのピクセルの値を示すグラフをポップアップ表示できるようにすることです。 各時系列グラフに使用されるラスターデータは可逆的に保存する必要がありますが、クリックされるオーバーレイマップは非可逆キャッシュになる場合があります。 OpenGeoよりも、このプロジェクト(初心者のWeb GIS開発者)に適しているものはありますか?それとも、このセットアップを続けるべきですか? 参考までに、Python、Java、およびPHPのプログラミング経験があります。SQLの経験はあまりありません。これはオープンエンドのプロジェクトですので、必要に応じて新しい言語を学ぶ時間は十分にあります。GoDaddyはVPSを取得せずにPostgreSQLをサポートしていないため、おそらくホストを切り替える必要がありますが、既にWebサーバーを持っています。 ご協力いただきありがとうございます! 編集:(1月13日) 3次元16ビット整数BIPラスターを格納し、データの単一のz軸「列」を効率的に照会できるようにする最適な方法に関する情報をまだ探しています。32ビット形式に変換したくありません(ファイルサイズが現在の16ビット形式から2倍になるため)。

3
複数のポリゴンのポリゴンアルゴリズムのポイント
Googleマップに多数のポリゴンがあります。 ここに私が興味を持っている問題があります:緯度、経度の点を考えると、この点があるすべてのポリゴンを決定する最良の方法は何ですか? 明らかな方法は、各ポリゴンに対して「ポリゴン内のポイント」アルゴリズムを繰り返し実行することですが、特に数千のポリゴンがある場合、そのようなクエリに答える効率的なアルゴリズムがあるのではないかと思いました。

1
QGISまたはPostGISでネットワークにラインレイヤーをスナップする
バスのルートから取得したGPSデータがあり、それを道路網にスナップしたいと思います。両方のレイヤーは、PostGIS DBのラインレイヤーです。QGISまたはPostGISのいずれかを使用したいのですが、GRASSまたはArcMapを使用する必要がある場合でも、それは問題ありません。ありがとう! 明確にするために、ラインをポイントするのではなく、ラインにスナップしようとしています。
11 postgis  qgis  snapping 

1
ST_ClosestPoint(line、point)はラインと交差しません
PostGISデータベース(Postgres 8.4.1のPostGIS 1.5)には、道路(線ストリングで構成される)とクラッシュ(ポイントで構成される)の2つのテーブルがあります。私はそれぞれのクラッシュを道路に関連付けようとしましたが、以下を機能させるのに問題があります: SELECT ST_ClosestPoint(road.the_geom, crash.the_geom), ST_Intersects(ST_ClosestPoint(road.the_geom, crash.the_geom), road.the_geom) ST_Distance(ST_ClosestPoint(road.the_geom, crash.the_geom), crash.the_geom) AS distance FROM --Table crashes is already in SRID 4326 (SELECT the_geom FROM crashes WHERE gid = 360) as crash, (SELECT ST_SetSrid(the_geom, 4326) as the_geom from roads) as road ORDER BY distance; このクエリは、各道路でgid 360を使用してクラッシュに最も近いポイントを返しますが、ST_Intersects関数は最初の結果(すべての道路で真の最も近いポイント)に対してfalseを返します。私は何か間違っていますか?クラッシュを最も近い道路にリンクする別の方法はありますか?
11 postgis  query 

2
ogr2ogrの「25D」オプションの明確化
[編集:私の元の投稿では、タイプミスに基づくエラーを受け取っていたので、質問のその部分を廃棄しましたが、まだ当てはまる質問を残しました。] でogr2ogrドキュメントは言います: -nlt type: Define the geometry type for the created layer. One of NONE, GEOMETRY, POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT, MULTIPOLYGON or MULTILINESTRING. Add "25D" to the name to get 2.5D versions. このパート:Add "25D" to the name to get 2.5D versionspostgresへのデータの読み込みと、postgresから.shpファイルへのデータのエクスポートの両方に適用されますか? さらに、25Dは、xy座標の各ペアに対応するz値を持つことができると想定していますが(PolygonZシェープファイルタイプの場合)、これらの座標は重複しない場合があります。これは正しいです?この場合、2.5Dと3Dの違いは何ですか? ありがとう
11 postgis  gdal  3d 

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