postgis相關函數

多邊形表示方式:geom (lng lat, lng lat) 

多邊形向外等距擴展50m    0.0005表示50

SELECT
ST_AsText(
    st_buffer (
        'POLYGON((' || A .WGS84 || '))',
        0.0005
    )),a.id
FROM
    hospital_area_new_result_id  A

以經緯度一點畫半徑爲50m的圓

SELECT
ST_AsText(
    st_buffer (
        'POINT('|| b.longitude || ' ' || b.latitude ||')',
        0.0005
    )),a.id
FROM
    hospital_area_new_result_id  A

判斷經緯度點是否在多邊形內

SELECT
    ST_Contains (
        ST_Transform (
            st_geometryfromtext (
                'POLYGON((' || A .WGS84 || '))',
                4326
            ),
            4527
        ),
        ST_Transform (
            st_geometryfromtext (
                'POINT(' || b.longitude || ' ' || b.latitude || ')',
                4326
            ),
            4527
        )
    )
FROM
    hospital_area_new_result_id_center A ,food_hospital_table_20191212 b

點是否在指定半徑的圓內 
SELECT
    ST_DWithin (
        ST_Transform (
            st_geometryfromtext (
                --圓心
                'POINT(113 30)',
                4326
            ),
            4527
        ),
        ST_Transform (
            st_geometryfromtext (
                --點
                'POINT(116.4680989087 39.9486998528)',
                4326
            ),
            4527
        ),
        --半徑
        500
    )

使用圖層展示

SELECT
    ST_AsText ('POLYGON((' || "WGS84" || '))')
FROM
    reptile

求兩個多邊形相交的區域面積

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,
    hospital_table b
LIMIT 100

求多邊形的面積 
SELECT
    ST_Area (
        ST_AsText (
            ST_Transform (
                st_geometryfromtext (
                    'POLYGON((' || wgs84 || '))',
                    4326
                ),
                4527
            )
        )
    ) 
FROM
    hospital_area_new_result_id

求多邊形的中心位置SELECT
    st_astext (
        ST_Centroid ('POLYGON((' || wgs84 || '))')
    )
FROM
    hospital_area_new_result_id

 

發佈了162 篇原創文章 · 獲贊 30 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章