postgis求面積、交集等相關函數

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章