美文网首页
使用pgRouting生成可达圈(等时圈)

使用pgRouting生成可达圈(等时圈)

作者: 圣瓦伦 | 来源:发表于2019-11-03 17:54 被阅读0次

pgRouting是地理空间数据库PostGIS的扩展插件,提供了路径规划的功能。

需求

输入一个起始点(经纬度坐标)和驾车(步行、骑行)的时间,根据已有的路网,输出能到达的最大范围,并获得范围内的兴趣点。

思路

主要使用pgRouting的pgr_drivingDistance + ST_ConcaveHull生成包围圈。

准备

  1. 安装PostgreSQL/PostGIS/pgRouting
  2. 导入路网数据,生成拓扑

计算过程

1.1 计算离目标点最近的节点

<-> :返回两点之间的距离

SELECT * FROM shenzhen_vertices_pgr
    ORDER BY the_geom <-> ST_GeometryFromText('POINT(113.954396 22.580677)',4326) 
    LIMIT 1;

1.2 以该节点作为起点,给定时间成本,计算可达路网

pgr_drivingDistance :详情查看pgRouting手册

with drivingDistance as(
SELECT
    sz.geom
FROM
    pgr_drivingDistance (
        'SELECT gid as id, source, target, distance/mean_speed as cost FROM shenzhen',  --路网表
        1034,  --节点的ID
        0.5*3600,    --总成本(时间)
        FALSE
    ) dd,
    shenzhen as sz
WHERE sz.gid = dd.edge
)
路网范围

1.3 根据路网计算可达圈

SELECT  st_concavehull(st_collect(array(select * from drivingDistance)),0.7)

st_concavehull:返回坐标点的包围圈,详情

可达圈

路网和可达圈叠加:

SELECT  st_concavehull(st_collect(array(select * from drivingDistance)),0.7)
union
SELECT * FROM drivingDistance;
叠加

1.4 根据可达圈计算圈内的POI(兴趣点)

主要用到的是st_contains函数

select t.* from 
(SELECT st_concavehull(st_collect(array(select * from drivingDistance)),0.9)) c 
left join traffic_facility t 
on st_contains(c.st_concavehull,t.geom)
where t.station_type IN ('SUBWAY');
POI和可达圈叠加

参考资料:

使用pgRouting可达范围计算
官网
PostGIS介绍:https://www.jianshu.com/p/66ea816f6fee

相关文章

  • 使用pgRouting生成可达圈(等时圈)

    pgRouting是地理空间数据库PostGIS的扩展插件,提供了路径规划的功能。 需求 输入一个起始点(经纬度坐...

  • 使用pgRouting可达范围计算

    之前有篇文章是等时圈的计算链接,在这篇文章中使用的技术是turf的等值线与高德或者mapbox的接口。在这个解决方...

  • 等时圈实现

    等时圈是指从某点出发,以某种交通方式在特定时间内能到达的距离覆盖的范围。前段时间看到一个站点,该站点能够计算自驾、...

  • 圈中甜度可达520%

    请容许我谈一谈在2020年5月20号左右,我的朋友圈发生了什么。本来是平淡无奇的一天,首先是新闻上爆出魏晨闷声领证...

  • 进口o型圈厂家.进口o型圈精度可达0.01mm

    进口o型圈厂家.进口o型圈精度可达0.01mm OTP进口氟素橡胶O型圈的物理性能:18075268556 氟橡胶...

  • 基于路径规划API使用FME计算等时圈

    本次依旧使用百度地图开放平台,这次使用路径规划API。本次是计算驾车出行的等时圈,因此在路径规划服务文档中找到驾车...

  • O型圈的使用寿命

    O型圈的使用寿命主要是由O型圈的材质和使用环境(温度、压力、介质等)决定的。 O型圈按材质主要分为:氟橡胶O型...

  • 基于高德地图做等时圈

    最近有朋友说要我写点东西了,我也觉得是需要写点东西了,于是翻了翻存货,好像可以写一下等时圈的东西,于是就写...

  • 2021-10-21 pgRouting

    pgRouting pgRouting是postgresql和postgis空间数据库的一个扩展功能包,负责实现路...

  • 徐州的高铁2小时可达城市朋友圈

网友评论

      本文标题:使用pgRouting生成可达圈(等时圈)

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