postgis 是pg的一個插件,提供空間函數等的功能
供參考:
ST_Intersects:求點與區域的交集、區域與區域的交集
ST_Area:求邊框圍成的多邊形的面積(收尾要閉合)
4325 、 4527 兩個是固定的,可以將經緯度的多邊形轉成實際的面積,對應資料參考 https://www.jianshu.com/p/be5049ad8884
SELECT
ST_Intersects (
ST_Transform (
st_geometryfromtext (
--'POLYGON(('+ select "WGS84" from v_a_adhoc_cfg_cell_antenna limit 1 +'))',
'POLYGON((116.4679312706 39.9482801227,116.4677961543 39.9486461337,116.4680989087 39.9486998528,116.4682182670 39.9483181633,116.4679312706 39.9482801227))',
4326
),
4527
),
ST_Transform (
st_geometryfromtext (
'POINT(116.4680989087 39.9486998528)',
4326
),
4527
)
);
實際應用:
CREATE TABLE area_and_food AS
SELECT
ST_Area (
ST_AsText (
ST_Intersection (
ST_Transform (
st_geometryfromtext (
'POLYGON((' || A ."WGS84" || '))',
4326
),
4527
),
ST_Transform (
st_geometryfromtext (
'POLYGON((' || b."WGS84" || '))',
4326
),
4527
)
)
)
),
A ."cgi"
FROM
area_relation_scenes A,
(
SELECT
"WGS84"
FROM
food_table
) b