zoukankan      html  css  js  c++  java
  • Introduction to PostGIS 之最优路径

       

          这几天研究了下postgis的拓展插件pgrouting(http://www.pgrouting.org/)。

          首先到官网下载pgrouting(注意版本对应,当前支持最高版本的postgis为8.4):

         然后把下载的pgrouting下doc lib share三个文件夹里的文件拷到postgresql安装文件夹的相应目录里面。然后打开postgresql  执行pgRouting-1.03_pg-8.4.2\Share\Contrib下的3个sql文件

         安装完算法之后我们就可以开始做最优路径分析了:

        首先对已有的道路表添加source target length  分别代表 道路的起点id 终点id 和权重值。

    ALTERTABLE ch10.load_merge ADDCOLUMN source integer;
    ALTERTABLE ch10.load_merge ADDCOLUMN target integer;
    ALTERTABLE ch10.load_merge ADDCOLUMN length doubleprecision;

       然后就可以执行assign_vertex_id()为表建立拓扑关系:

    SELECT assign_vertex_id('load_merge',.001,'the_geom','gid');

    在进行分析之前还要设置下权重值,一下sql语句是以道路长度为权重值:

    UPDATE twin_cities SET length = ST_Length(the_geom);

    最后就可以执行查询(需要注意的是:道路表的the_geom类型应为muitilinestring):

    SELECT st_astext(the_geom)  FROM dijkstra_sp('load_merge',752,82);

    也可以插入一个表中 可以通过QGIS查看结果:

    SELECT the_geom INTO dijkstra_result FROM dijkstra_sp('load_merge',4752,82);

       在实际项目开发中使用pgrouting是相当方便的:

      地图服务:geoserver

      数据库:postgresql+postgis+pgrouting

     程序下载地址:https://github.com/shitao1988/AGS-PgRouting

  • 相关阅读:
    Linux设备树(四 中断)
    Linux设备树(三 属性)
    Linux设备树(二 节点)
    责任链设计模式
    获取服务器内存和可用线程
    秒杀抢购思路解析
    Hystrix 用法及注解用法
    object is not an instance of declaring class
    sqlserver 截取字符串
    sqlserver 转化函数
  • 原文地址:https://www.cnblogs.com/shitao/p/2177295.html
Copyright © 2011-2022 走看看