接上篇,前面在ArcMap中和Postgis中将数据都已经进行了预处理。

接下来回到Geoserver中,进行数据发布。

1、新建工作区

2、填写完工作区信息

3、打开数据存储,添加新的数据存储

4、新建数据源,选择PostGIS

5、依次填写完如下信息,保存即可

6、添加新图层

7、新建图层,将前面处理好的图层发布,作为底图(这里发布两个图层,一个底图,一个sql图层)

8、底图发布完成后,再新建一个图层,这次选择“配置新的SQL视图”

9、填写完红框信息,保存

sql 视图:
SELECT * FROM pgr_shortestpath(‘zy’, %x1%, %y1%, %x2%, %y2%)
验证的正则表达式:^-?[\d.]+$
类型:LingString
SRID:3857

10、验证,Openlayers调用

改一下调用地址和点击坐标即可

<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>网络分析</title>
<link href="../lib/css/ol.css" rel="stylesheet" type="text/css">
<style>
#id {
width: 1000px;
height: 1000px;
}
</style>
<script type="text/javascript" src="../lib/ol/ol-debug.js"></script>
</head> <body>
<div id="map"></div>
<script> var roadLayer = new ol.layer.Tile({
source: new ol.source.TileWMS({
url: 'http://10.19.151.238:8080/geoserver/NA/wms',
params: { 'LAYERS': 'NA:zy', 'TILED': true },
serverType: 'geoserver'
})
})
var map = new ol.Map({
target: document.getElementById("map"),
layers: [
roadLayer
],
view: new ol.View({
center: [12985322, 4799338],
projection: 'EPSG:3857',
zoom: 12
})
});
var startCoord = [12991487.849, 4800716.518];
var destCoord = [12993333.603, 4799171.652];
var params = {
LAYERS: 'NA:func_shortestpath',
FORMAT: 'image/png',
};
var viewparams = [
'x1:' + startCoord[0], 'y1:' + startCoord[],
'x2:' + destCoord[], 'y2:' + destCoord[]
//'x1:' + 12952117.2529, 'y1:' + 4836395.5717,
//'x2:' + 12945377.2585, 'y2:' + 4827305.7549
];
console.log(viewparams);
params.viewparams = viewparams.join(';');
result = new ol.layer.Image({
source: new ol.source.ImageWMS(
{
url: 'http://10.19.151.238:8080/geoserver/NA/wms',
params: params
})
});
console.info(result);
map.addLayer(result);
</script>
</body> </html>

11、原理

PostGIS做的网络分析,主要原理在于将数据建立拓扑后,导入到PostGIS数据库

先用pgRouting插件里带有的dijkstra算法接口,找出两点间的最短路径经过的线段,通过截取、拼接的方式美化开始段、结束段,最后用函数的形式封装完,利用Geoserver发布成服务

前端页面用Openlayers调用服务,实现功能展示

12、正式版效果

PostGIS 结合Openlayers以及Geoserver实现最短路径分析(三)的更多相关文章

  1. PostGIS 结合Openlayers以及Geoserver实现最短路径分析(二)

    前文讲述了怎么用ArcMap制作了测试数据,并导入了PostGIS,接下来我们需要结合PgRouting插件,对入库的数据再进行一下处理. 1.在pgAdmin中,执行下面的sql语句 --添加起点字 ...

  2. PostGIS 结合Openlayers以及Geoserver实现最短路径分析(一)

    环境: Win10 ArcMap10.4(用于数据处理) postgresql9.4 postgis2.2.3 pgRouting2.3(postgresql插件) ##附上本文配套素材下载地址:ht ...

  3. postgresql+postgis+pgrouting实现最短路径查询(2)---openlayers+geoserver实现最短路径

    自己的最短路径实现基本上是按照参考博文的1.2和3进行的,实现的时候也是问题不断,只能是一个一个解决. 问题1:自己发布的geoserver服务无法和OSM底图叠加到一起. 解决:参考博文2提到发布服 ...

  4. Arcgis Engine最短路径分析

    ArcEngine 最短路径分析(源码)   using System; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI ...

  5. ArcGIS API for JavaScript 4.2学习笔记[27] 网络分析之最短路径分析【RouteTask类】

    要说网页端最经典的GIS应用,非网络分析莫属了. 什么?你没用过?百度高德谷歌地图的路线分析就是活生生的例子啊!只不过它们是根据大实际背景优化了结果显示而已. 这个例子使用RouteTask进行网络分 ...

  6. arcgis api 3.x for js 入门开发系列十三地图最短路径分析(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  7. 以Network Dataset(网络数据集)方式实现的最短路径分析

    转自原文 以Network Dataset(网络数据集)方式实现的最短路径分析 构建网络有两种方式,分别是网络数据集NetworkDataset和几何网络Geometric Network,这个网络结 ...

  8. ArcGIS网络分析之Silverlight客户端路径分析(三)

    原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...

  9. OpenLayers 3+Geoserver+PostGIS实现点击查询

    WebGIS开发中,点击查询是最经常使用的一种查询方式,在ArcGIS api 中.这样的查询叫IdentifyTask,主要作用是前台提交參数.交ArcServer查询分析返回. 本文从开源框架的角 ...

随机推荐

  1. VBA 在第二个sheet中查找第一个sheet中不存在的值

    VBA 在第二个sheet中查找第一个sheet中不存在的值  Sub Macro2() ' ' Macro2 Macro ' 宏由 Lizm 录制,时间: 2019/04/10 '   ' Dim ...

  2. 关于javascript闭包的最通俗易懂的理解

    这两天在研究闭包,网上一通找,有牛人写的帖子,有普通人写的帖子,但是大多没戳中本小白所纠结的点,而且大多插入了立即执行函数,其实根本不需要的,反而让人产生了误解.这里我用我的方式讲解一下闭包. 1.目 ...

  3. Java基础(38)AbstractMap类

    AbstractMap类的子类有HashMap(其子类是LinkedHashMap).TreeMap.EnumMap.WeakHashMap和IdentityHashMap. 1.HashMap (1 ...

  4. python wraps的作用

    1.__name__用来显示函数的名称,__doc__用来显示文档字符串也就是("""文档字符串""")这里面的内容 2.首先我们来看不加@ ...

  5. SpringBoot整合Mybatisplus3.x之CRUD(一)

    pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  6. 怎么安装wordcloud

    python第三方组件有很多都是whl文件,遇到这样的whl文件应该怎样安装呢,今天来介绍一下whl文件怎样安装. 更多内容访问omegaxyz.com 先推荐一个非正式第三方whl文件包的网站: h ...

  7. 【MySQL】MySQL服务启动失解决方法

    写在前面的话:前段时间,为了更加流畅愉快的玩PUBG,我在任务管理器中,关闭了mysqld服务.后来我在使用MySQL数据库服务的时候,发现去到MySQL安装目录下双击运行mysqld.exe(数据库 ...

  8. python(可迭代对象,迭代器,生成器及send方法详解)

    一.可迭代对象 对象必须提供一个__iter__()方法,如果有,那么就是可迭代对象, 像列表,元祖,字典等都是可迭代对象可使用isinstance(obj,Iterable)方法判断 from co ...

  9. 【GIT】下载最新库命令

    使用技巧:使用这个命令 git clone git仓库地址 --depth=1 这样只下载最新版本仓库,而不是所有历史版本的仓库

  10. CVE-2019-0708: Windows RDP远程漏洞无损检测工具下载

    CVE-2019-0708: Windows RDP远程漏洞无损检测工具下载 0x00下载链接 https://free.360totalsecurity.com/CVE-2019-0708/dete ...