我有4個我總是得到的點,我想查詢一個多點定義的多邊形是否包含這4個點。我正在使用PostGIS和Postgres。查詢包含4個點的多邊形
我也爲此目的使用OGR/GDAL。有人會爲此向我提供使用SQL的查詢。
我有4個我總是得到的點,我想查詢一個多點定義的多邊形是否包含這4個點。我正在使用PostGIS和Postgres。查詢包含4個點的多邊形
我也爲此目的使用OGR/GDAL。有人會爲此向我提供使用SQL的查詢。
這用來檢查點(1 1),(2 2),(3×3),和(4×4)都位於由(00)所限定的多邊形內,(10 0),(10 10) (0 10)和(0,0):
SELECT st_contains(
st_polygon(
st_linefrommultipoint(
st_mpointfromtext(
'MULTIPOINT(0 0, 10 0, 10 10, 0 10, 0 0)'
)
),
0
),
st_mpointfromtext(
'MULTIPOINT(1 1, 2 2, 3 3, 4 4)'
)
);
因此,要找到滿足條件的所有多點,你可以使用類似的東西:
SELECT id
FROM multipoints
WHERE st_contains(
st_polygon(
st_addpoint(
st_linefrommultipoint(
multipoints.geom
),
st_startpoint(
st_linefrommultipoint(
multipoints.geom
)
),
-1
),
st_srid(multipoints.geom)
),
st_mpointfromtext(
'MULTIPOINT(1 1, 2 2, 3 3, 4 4)',
8307
)
);
這假定multipoints不形成一個閉合的多邊形(即第一個點等於最後一個)。
我在我的例子中使用SRID 8307,用你需要的替換它。
請定義「內部4分」。如果多邊形在這4點內,則爲 –
。 4點是相機點,所以我想知道這個多邊形是否在這4點內,位於相機視野 – andre
我需要包含這4點的多邊形。 – andre