PostGIS機能を提供するための最速の(パフォーマンス面で)方法は何ですか?


12

PostGIS機能を提供する最速の方法に興味があります。いくつかのWMSの改善と代替(MapProxy、TileCache、Mapnik ...)を見つけることができますが、WFSオープンソースの改善と代替はそれほど多くありません。タイルには興味がありませんが、ベースレイヤー上のポリゴンには興味があります。高速で提供しています。

正しい方向に向けてください。


更新:

私のアプリが地籍情報を表示していることを忘れていました。また、地籍ポリゴンは選択可能である必要があります(編集可能ではなく、クリックすると強調表示されます)。

クライアント(OpenLayers)で同時に数千のポリゴンのような状況を回避するために、ユーザーがマップの一部をクリックしたときにGeoJSONオブジェクトを生成するWMSとDjangoを組み合わせて使用​​しています。

正しい方法かどうかわかりません(WMSまたはその他のソリューションを使用してレンダリングすることで、クライアントで数千のpolのような潜在的に困難な状況を回避する必要がありますか?ポリゴンの提供方法を​​改善する必要がありますか?)


1
どんなハードウェアがありますか?
マッパーズ

Ubuntu 10.04 32ビット512 MB RAM、VMWareサーバーの下で実行。これは開発マシンですが、私はまだ別のマシンにアクセスできません。ここでは合理的に機能するはずです(必要条件)
ホルヘアレバロ

回答:


6

ジオメトリの単純化はどうですか?

http://www.bostongis.com/postgis_simplify.snippet

/programming/1849928/how-to-intelligently-degrade-or-smooth-gis-data-simplifying-polygons

あるいは、WFS、単純化された機能を備えたWFS、WMSの組み合わせでしょうか?


いいですね。現在、polをレンダリングし、WMS経由で提供しています。...私は、クライアントが同時にポリゴンの数百万人を処理しないだろうと思うが、私は間違っている可能性があります
ホルヘ・アレバロ

6

GeoServerは、WFSサービスを高速化するために配置されたジオメトリの小数点以下の桁数を制御するユーザー設定を提供します。

また、クライアントが効率的に出力を解凍できる場合にのみ、サーバーが出力を圧縮していることを確認してください。

最後に、速度の点で小さなOWSについて良いことを聞きました。


小さなOWSについて聞いたことがありますが、使用したことはありません。提案をありがとう!
ホルヘアレバロ

6

WFSキャッシングがニーズに合う場合があります。私の知る限り、WFSキャッシングを提供するオープンソースソリューションは2つあります。TileStacheGeoWebCacheです。

TileStacheのホームページの機能セクションでは、「Polymapsで使用可能なGeoJSONのOGRデータソースからベクタータイルを生成する」と言われています。

GeoWebCacheには、バージョン1.1.0以降のWFSキャッシュ機能がいくつかあります(現在のバージョンは1.2.6です)。

GeoWebCache 1.1.0(最終)リリース

...

1.c基本的なWFSキャッシングGeoWebCache 1.1.0は、非常に基本的なWFSキャッシングをサポートしています。クエリの結果はディスクに保存されます。現在、クエリを検査したり、プログラムで削除したりする機能はありません。アルゴリズムは計算されたハッシュに依存し、一意性をチェックしないため、衝突の可能性はわずかです。この開発の動機は、GeoServerのSHP-ZIP(zip形式のシェープファイル)出力形式でした。これらのファイルは、膨大で計算に膨大な費用がかかる可能性があります。このWFSサービスは、現在の状態では、より複雑な場合に使用することを意図していません。

http://old.nabble.com/GeoWebCache-1.1.0-(finally)-released-td22870524.html

残念ながら、GileWebCacheもTileStacheも使用したことがないため、WFSキャッシングに関する経験を共有することはできません。


ありがとう。私は2つのオプションを検討しています:ポリゴンをレンダリングしてWMS +キャッシュを介して提供する(数百万、おそらくクライアントには多すぎる...)、またはWFS +キャッシュを介してポリゴンを提供しようとします。現在、最初のオプションを使用しています。
ホルヘアレバロ

1
最初のオプション(サーバー側でのWMSレンダリング+キャッシュ)をお勧めします。WFSオプションは、クライアント側でレンダリングが行われることを意味します。私の経験では、これは古いWebブラウザーまたはコンピューターを使用しているユーザーにとっては問題であり、制御できない変数です。
ダリアプラ

3

私は大きなweb-gisを開発しており、多くのデータ(レイヤーあたり約700.000の機能)を使用しています。唯一のソリューションは、機能をレンダリングするWMSと、機能の情報を取得するWFSです。私がやっている(良いパフォーマンスで)Whtaは:

  • ジオサーバー(ネイティブJAIライブラリーを使用)
  • ユーザーがマップをクリックすると、wms getfeatureinfoを使用して、選択したフィーチャの情報(形状とデータの両方)を取得します(フィーチャが重複している場合は、ここでいくつかのフィルタリング機能を実装する必要があります)
  • 「選択ハイライト」をシミュレートするために、getFeatureInfoの結果がフィーチャとして別のレイヤーに追加されます

ありがとう!プロジェクトは最終的にキャンセルされましたが、あなたのソリューションは良いものだと思います。
ホルヘアレバロ

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