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

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

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
3次元ジオメトリから2次元への変換
ジオメトリ列に3次元と2次元の両方の値が含まれるポイントテーブルがありますが、この3次元ジオメトリを2次元に変換したいのですが、PostGISに機能はありますか?この問題を解決するのを手伝ってください。 よろしくSreesha.TA

3
OpenLayersでPostGISラスターを表示するためのオプション
この質問は、Webマップでのベクターデータの表示に関する以前の質問に似ています。OpenLayersを使用し、googleなどのベースマップを使用して、現在PostGISにあるラスターデータを表示できる基本的なWebインターフェイスが必要です。ラスターライブラリを使用してPostGIS2.0をインストールしましたが、JPEG、GeoTIFF、PNGなどのデータを出力するためのいくつかのオプションがあることをドキュメントから確認しました。使用するのに推奨される形式ですか? ベクターデータを表示するには、現在JavaScriptを使用してユーザーのブラウザからサーバーに座標を送信し、PostGISでPHP / SQLを使用してクエリを実行しています。結果はGeoJSONとして返され、ベースマップにオーバーレイできます。ラスターを使用して同様のアプローチを適用できるかどうか疑問に思いましたが、どのラスター形式が最適であるか、または考慮すべき他の制約があるかどうかはわかりません。 GeoServerへの多くの参照を見てきましたが、このプロジェクトに必要かどうかはわかりません(GeoServerをいつ使用するかは完全にはわかりません)。

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 …

2
どのようにしてポイントを内部またはタッチではなく、ポリゴンと交差させることができますか?
国勢調査のシェープファイル(マルチポリゴン)を使用しており、ポイントのある別のテーブルがあります。各ポイントがどのセンサスブロックにあるかを記録します。すべてのST_WithinおよびST_Touchesクエリに対してfalseを返す1つのポイントがあります。ただし、1つのブロックのST_Intersectsに対してtrueを返します。 それが別のポリゴンである場合、これがどのように起こるか理解できますが、どのように単一ポイント(これが事実であることを検証しました)は交差と真であり、内とタッチの両方で偽ですか?QGisでそれを調べると、Touchesに対してtrueを返すはずです。 私たちのテーブルには数百万のポイントがあり、この単一のポイントだけに問題があるようです。ポリゴンとポイントの両方でST_IsValidを実行しました。 ジオメトリデータはかなり新しいです。これがどのように機能するかについて何かが欠けていますか? ポリゴンブロック(geoid: '170898507021157') SELECT ST_Within(pt, geom), ST_Touches(pt, geom), ST_Intersects(pt, geom) FROM ( VALUES ( ST_SetSRID( ST_GeometryFromText($$MULTIPOLYGON(((-88.466933 42.139013,-88.464586 42.139034,-88.463821 42.13901,-88.463811 42.138813,-88.463815 42.138705,-88.46382 42.138572,-88.463849 42.138468,-88.463886 42.138398,-88.464044 42.138452,-88.464239 42.138464,-88.464616 42.138472,-88.464961 42.138468,-88.465318 42.13846,-88.465558 42.138464,-88.465695 42.138443,-88.465824 42.138402,-88.465969 42.138319,-88.466048 42.138248,-88.466106 42.138161,-88.466135 42.138057,-88.466148 42.1379,-88.466149 42.137731,-88.466143 42.137406,-88.466143 42.137086,-88.466131 42.136945,-88.466098 42.13685,-88.466027 42.136746,-88.46596 42.136677,-88.465799 42.136609,-88.465571 42.136559,-88.465359 42.136534,-88.465167 …
11 postgis 

1
既にターゲットsridにあるジオメトリでST_Transformを呼び出しますか?
私は、さまざまな投影法で使用できるパラメーターとしてジオメトリを持つ関数を作成しています。 CREATE OR REPLACE FUNCTION foo(in geometry) RETURNS boolean AS $$ DECLARE transformed_geom geometry := in; BEGIN IF ST_SRID(transformed_geom) != 32737 THEN transformed_geom := ST_Transform(transformed_geom, 32737); END IF; [ ... ] END; $$ language plpgsql; この関数は特定の投影法(32737)でジオメトリを必要としますが、変換を行うために呼び出し側に義務を負わせたくありません。関数内で処理することを好みます。 問題は、実際のsridをチェックする代わりに、常にST_Transformを呼び出すのが安全ですか?ジオメトリがすでにターゲット投影にある場合、何をしますか? このようなクエリを使用して、安全であるように確認しますが、ドキュメントで確認できなかったため、誰かがこれを確認できれば素晴らしいでしょう。 SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 32737)) FROM table_in_32737;
11 postgis  srid 

1
境界ボックス内のすべてのポイントを選択します
この質問は以前に聞いたことがありますが、私が試みている答えは機能していません。 境界ボックス内にあるすべてのOSMウェイを照会したいと考えています。OSMデータは、デフォルトの球状メルカトールでインポートされました。LAT / LONを使用してクエリを実行しているため、変換 SELECT * FROM planet_osm_ways WHERE ST_Transform( ST_MakeEnvelope(37.808264, 37.804339, -122.275244, -122.271189, 4326),3857 ); これを実行すると、次のエラーが表示されます。 エラー:WHEREの引数は、タイプジオメトリではなくブール型でなければなりませんLINE 3:WHERE ST_Transform(ST_MakeEnvelope(37.808264、37.804339、-12 ...

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

2
マップマッチングGPSは道路網をポイントします!
私はPostgresとPostGISを初めて使います。 GPSポイントの単純なマップマッチング(または、必要に応じてパス推論)を試みています。私はpostgres(postgis)を使用しています。 データベースにGPSポイントを含むテーブルがあります: gpspoints(緯度、経度、時間、速度、方位角、ジオメトリ、...) 道路ネットワークのシェープファイルもデータベースにインポートしました: ルート(gid、idrte、version、nomrte、norte、clsrte、geomなど)-リンクの方位角がありません。 postgis関数ST_azimuthを使用してどのように計算できるかわかりません。私が持っているのは、上記の列を含む道路網のシェープファイルだけです。 リンクの方向がGPSポイントの方位角(+または-15度)と一致する場合にのみ、各GPSポイントを(ポイントの周りの20メートルのバッファー内の)最も近いリンクに関連付けて、投影された位置を取得します。それ以外の場合、許容可能な方位角を持つ20メートルのバッファー内で、NEXTの最も近いリンクを検索します。(写真のように!) 投影されたGPSポイントの新しい座標を、テーブル「gpspoints」に「projectedLat」および「projectedLong」として追加する必要があります。 (下の図では、実際のポイントは方向を使用して示されていますが、投影されたポイントには方向マークがありません)

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 これは予想どおりに機能しますが、もっと簡単な方法があるのではないかとよく疑問に思います。

2
shapelyでpostgisジオメトリを読み取る
私はipythonノートブックでgeopandasとshapelyを使用して小規模なワークフローを実行し、シェープファイルから、時にはpostgis(より高価な処理が実行される)から大量の地理空間データを引き出します。 次に、を使用してpostgisテーブルをpythonにプルします。sqlalchemy途中でジオメトリをWKTに変換し、次のようにします。 sql = """ SELECT ST_AsText(ST_Transform(the_geom,4326)) as newgeom,* FROM public.parcels2010_small limit 5; """ parcels = pd.read_sql(sql, engine) parcels +----+---------------------------------------------------+---------------------------------------------------+-----------+-------------+ | id | newgeom | the_geom | parcel_id | osm_node_id | +----+---------------------------------------------------+---------------------------------------------------+-----------+-------------+ | 0 | MULTIPOLYGON(((-122.991093691444 38.4878691106... | 01060000209C0E00000100000001030000000100000097... | 1805792 | 66237 | +----+---------------------------------------------------+---------------------------------------------------+-----------+-------------+ | 1 | MULTIPOLYGON(((-122.444576448624 37.7346386006... …

1
PostGISを使用したポールラップ海岸線に沿ったポイントサンプリング
私は、海岸線に沿って1000 kmごとにサンプルポイントを取得する必要があるタスクに取り組んでおり、南極大陸の問題に遭遇しました。私が知ることができることから、実際にこの操作に地理を使用すべきだと思うとき、それは関数での幾何学の使用に関する問題のようです。 このよく似た質問の関数を使用して、次のような結果を生成できます。 あなたが見ることができる、通りST_AddMeasure()やST_LocateAlong()南極の上に座って、多くの点でその結果、球状ジオメトリを扱うようには見えません。日付線(左側)に沿ってクリップにポイントが追加されました。これら2つの関数のドキュメントに従って、ジオメトリのみを使用できます。 ポリゴンとポイントの生成に使用されるコードはここにありますが、これはポイントの生成に使用されるSQLです。 CREATE TABLE atest AS WITH line AS (SELECT id, ST_ExteriorRing((ST_Dump(geom)).geom) AS geom FROM line_sample_test), linemeasure AS (SELECT ST_AddMeasure(line.geom, 0, (ST_Length(line.geom))::int) AS linem, generate_series(0, (ST_Length(line.geom))::int, 10) AS i FROM line), geometries AS ( SELECT i, ST_LocateAlong(linem, i) AS geom FROM linemeasure) SELECT * from geometries; この海岸線に沿って1000 …

1
GeoServer ImageMosaic PostGISインデックスの更新
このマニュアルに従って、ImageMosaicストレージを作成したGeoServerを使用します。新しいデータストアを作成すると、すべての*.tifファイルがDBにインデックス付けされます(PostGISを使用したPostgreSQL)。データフォルダに新しいジオティフを配置するとき、またはDB内のすべてのジオティフファイルのインデックスを再作成するときに、DBに新しいインデックスエントリを作成するにはどうすればよいですか? 私の設定ファイル: datastore.properties: SPI=org.geotools.data.postgis.PostgisNGDataStoreFactory host=localhost port=5432 database=GeoServerRaster schema=public user=geoserver passwd=******* Loose\ bbox=true Estimated\ extends=false validate\ connections=true Connection\ timeout=10 preparedStatements=true indexer.properties: Caching=false TimeAttribute=ingestion ElevationAttribute=elevation Schema=*the_geom:Polygon,location:String,ingestion:java.util.Date,elevation:Integer PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](ingestion),DoubleFileNameExtractorSPI[elevationregex](elevation) timeregex.properties: regex=[0-9]{8}T[0-9]{6}Z(\?!.\*[0-9]{8}T[0-9]{6}Z.\*) elevregex.properties: regex=(?<=_)(\\d{1,5})(?=_) ディレクトリ内のファイル: tc_10000_20140807T033115Z.tif tc_10000_20140807T040046Z.tif tc_10000_20140807T043115Z.tif ...


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