美文网首页
Buffer功能:轨道站点周边一公里的人口数

Buffer功能:轨道站点周边一公里的人口数

作者: 狮子城 | 来源:发表于2018-11-10 15:04 被阅读0次

    已知:

    图层1:点层lacci,具有一列人口数的值
    图层2:点层metro,轨道交通站点

    求解:

    轨道交通周边1000米内的人口数

    思路1:

    将lacci点层中到metro点层中任意站点距离小于1000米的点都选出来,然后做统计。

    SELECT 
        a.*,
        b.ID 
    FROM
        lacci a,
        metro b 
    WHERE
        st_distance (
        st_transform ( a.geom, 32651 ),
        st_transform ( b.geom, 32651 )) < 1000 
    ORDER BY
        a.ID;
    

    思路2:

    将lacci点层中到metro点层中最近的站点找出来,增加一列属性为最近站点的主键编号。再筛选到最近站点的距离小于1000米的点。

    SELECT
        * 
    FROM
        (
        SELECT T.*,
            ROW_NUMBER () OVER (
                PARTITION BY T.lac,
                T.ci 
            ORDER BY
                dis 
                ) rowid (
            SELECT a.*,
                b.ID AS metro_id,
                st_distance (
                    st_transform ( a.geom, 32651 ),
                st_transform ( b.geom, 32651 )) AS dis 
            FROM
                lacci a,
                metro b 
            WHERE
                st_distance (
                    st_transform ( a.geom, 32651 ),
                st_transform ( b.geom, 32651 )) < 1000 
            ) T 
        ) M 
    WHERE
        rowid =1
    

    相关文章

      网友评论

          本文标题:Buffer功能:轨道站点周边一公里的人口数

          本文链接:https://www.haomeiwen.com/subject/qkbzxqtx.html