基于PostGIS+PgRouting的最短路径查询的实现(二):Geoserver篇

上一篇记录了在PostgreSQL数据库中如何组织和查询最短路径,由于Geoserver支持PostGIS数据库,在开源WebGIS领域,通常用这两个组合来发布地图服务,因此,这一篇将介绍在如何在Geoserver中发布最短路径查询服务。

最短路径查询

回顾下上一篇最后,查询最短路径的SQL:

select seq, id1 as node, id2 as edge, cost, geom  from pgr_dijkstra('
select gid as id,
source::integer,
target::integer,
length::double precision as cost,
rev_length::double precision as reverse_cost
from road ',
7,12,true,true) as di
join road pt
on di.id2 = pt.gid

在这个查询第8行,7、12分别代表你要查询的起点和终点ID。可以在表“XXX_vertices_pgr”中ID字段找到这两个编号,这两个编号对应的节点位置可以通过QGIS或者ArcMap 来进行查看。

将查询发布成服务

假设你已经创建了工作空间,并且创建了PostGIS类型的数据存储,数据库连接指向上面表所在的数据库。按以下步骤

  1. 图层-添加新的资源
    geoserver添加图层

  2. 选择数据存储,新建图层
    geoserver新建图层

  3. 配置新的SQL视图
    将上面SQL语句中的SQL数字替换成字符串变量,使用%括起来。
    geoserver配置SQL视图

  4. 从SQL猜想的参数

  5. 刷新属性
    将geometry的srid值改成相应的坐标系,如4326。
    geoserver SQL视图属性
    保存。

  6. 编辑图层界面,设置边框等,保存。完成SQL视图图层发布。
    geoserver 图层发布

  7. 如果要更新SQL,单击Edit sql view,回到编辑SQL视图,编辑完成后重新保存SQL,保存图层。

geoserver 编辑SQL视图

以上操作完成后,即完成最短路径查询图层的发布。可以使用WMS服务或者WFS服务来查询结果。

预览结果

由于发布时设置了默认值,可以直接在geoserver中预览到查询结果。

goeserver 结果预览

如果你想查看其它两点之间的最短路径,在预览地址最后面加上参数&viewparams=from:xxx;to:xxx

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

此爱如少年

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值