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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值