到達可能な領域にポリゴンを構築する
私は現在、等時性と基礎となるアルゴリズムの分野で働いています。現在問題となっているのは、等時線自体の場合の計算ではなく、結果の視覚化です。 私の等時線アルゴリズムの結果は、ポイントとエッジです。実際、私には有効なソリューションがありますが、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)), …