私はPostgreSQLを初めて使用するので、我慢してください。
2つのテーブルがあります。1つは複数のポリゴンを持つ「polys」と呼ばれ、もう1つは1つのポリゴンのみを含む「box」と呼ばれます(私の境界ボックス)。私のクエリでは、バウンディングボックス「ボックス」内にある「ポリゴン」内のすべてのポリゴンを選択します。必要に応じてクリップを選択します。両方のテーブルには2つの列があり、1つはIDを含み、もう1つは「the_geom」と呼ばれるGeoJSONを含みます。
必要なのは、バウンディングボックス内にあるポリゴンのIDを含む1つの列、「the_geom_webmercator」と呼ばれるこれらのポリゴンのGeoJSONを含む別の列、各ポリゴンの領域を含む「polygonarea」と呼ばれる別の列、そして各ポリゴンの同じ正確な値(値はすべてのポリゴンの合計です)。ただし、SUMを要求するだけでは、1つの値しか返されないため、機能しません。代わりに、この値を列全体に入力する必要があります。以下は私が試したものです。「SUM...AS」は問題の部分です。
SELECT polys.id, ST_Transform(ST_Intersection(polys.the_geom, box.the_geom),3857)
AS the_geom_webmercator,
ST_Area(ST_Transform(ST_Intersection(polys.the_geom,box.the_geom),3857))
AS polygonarea,
SUM(ST_Area(ST_Transform(ST_Intersection(polys.the_geom,box.the_geom),3857)))
AS totalarea FROM polys,box