在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Sqlview动态发布地图图层的方法是什么

120次阅读
没有评论

共计 2418 个字符,预计需要花费 7 分钟才能阅读完成。

Sqlview 动态发布地图图层的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1.SQL Views 简介

Geoserver+postgresql+openlayers(leaflet) 是目前主流的 gis 开发工具。Postgresql 用于存储地图数据,geoserver 用于发布地图数据,openlayers 或者 leaflet 用于访问发布地图。正常情况下当 shapefile 格式的数据导入 postgresql 数据库中之后,我们需要通过 geoserver 把所有的数据发布出去,这样才能访问。常规情况下这种操作方式是没有问题的,因为地图作为基础服务,一旦发布出去是不会变化的。但是对于室内地图来说就不行了,假如一个商场有 5 层,每一楼层又层有 5 个地图图层,对于这样一个商场需要把这 25 个地图图层在 geoserver 中全部发布出来才能访问该商场的全部地图。假如发布这一个商场的 25 个图层你还能忍受的话,那发布成千上万个商场的地图你还能忍受吗?既然忍受不了那就要想办法解决。由于发布地图是机械的重复的工作,我们是否能想一些办法来帮我们完成这些工作呢。这时候就是我们的 sqlView 出场了。

首先介绍一下 sql View,通过 SQLViews 可以做如下事情:

(1)数据库 view 可以在 geoserver 中当作表完全一样的发布,而 geoserver 的 SQLViews 不仅能实现简单的查询发布,还能输入参数作为查询视图的条件。

(2)SQLViews 可以发布数据库的存储过程或者 function,执行更加复杂的逻辑操作与查询。

(3)SQL Views 查询可以通过字符串替换的方式进行参数化,参数值可以在 wms 和 wfs 请求总使用,输入值可以通过设置的正则表达式进行验证从而消除 SQL 注入攻击的风险。

(4)SQLViews 是对数据库操作与查询的一个结果,不能使用 wfs_t 去操作它,但是 wfs,wms 都可以正常请求或者查询。

2. 创建带查询条件的 SQL Views 视图:

(1)登录 geoserver,点击图层,选择工作空间,新建图层。

(2)新建 SQL Views 视图图层,并发布。

这里创建了一个视图,发布传入的表名数据。

tbl 的默认值设置为数据库中一直会存在的表格,设置的正则表达式为只允许输入字母数字和下划线。

在属性值对输出结果的类型和坐标系做了设置。

(3)图层访问

在通过 wms 获取地图的时候只需要把 tbl 的值通过 viewparams 传递过去就行了

http://10.20.135.14/geoserver/parking/wms?SERVICE=WMS VERSION=1.3.0 REQUEST=GetMap FORMAT=image%2Fpng TRANSPARENT=true LAYERS=parking%3AvTingchewei CRS=EPSG%3A4326 STYLES= WIDTH=2700 HEIGHT=1200 BBOX=20.02708134918213%2C110.33805803565978%2C20.03351865081787%2C110.3525419643402 viewparams=tbl%3Awanghaiguojia_b2_tingchewei

viewparams 格式一般是 viewparams=p1:v1;p2:v2;…可以加若干个参数。不同参数之间以; 隔开,单个参数是键值对,即 p1 是参数名称,v1 是参数值。

通过 wms 方式访问发布的视图方法为:

var params = {LAYERS: parking:vTingchewei ,FORMAT: image/png varviewparams = [ tbl:wanghaiguojia_b2_tingchewei params.viewparams= viewparams;varvTingchewei = new ol.layer.Image({source:new ol.source.ImageWMS({url: http://10.20.135.14/geoserver/parking/wms , params:params,serverType: geoserver ,})});

通过这种方式,再多的商场只需要在 geoserver 中发布 5 次视图即可,而且该发布视图的代码可以预先写入 geoserver 中打包进去。这样该系统在任何商场使用都不需要发布地图了。

3. 创建包含 function 的 SQL View 视图

解决了图层发布的问题,终于可以松一口气了。但是,没想到棘手的问题还在后面。领导让做室内导航功能。做就做吧,谁让咱是苦逼的码农呢。那该怎么做室内导航呢,做这个功能之前,咱还是要规划一下的。首先要写最短路径查询算法;然后查询路径的时候只需要把起点和终点的位置输入算法查询即可;最后把查询的结果通过 wms 或 wfs 方式获取,显示在地图上。

编写最短路径规划算法的时候我们需要的输入有:用户所在楼层的道路名,起点和终点的位置,然后我们吭哧吭哧,大战 3 天三夜,搞定。

接着查询,好办,直接按照上面的放吧,把该商场的 5 个楼层都发布一个基于对应楼层的结果路径视图,机智吧?NO,NO,NO! 简直遇事情不懂脑子啊。这个时候肯定需要换一个新的方法,把最短路径规划算法写成一个 Function 嵌入到 postgresql 数据库中,该 function 的输入参数为:用户所在楼层,起点位置,终点位置;输出参数为起点和终点直接经过的点坐标。

通过 wms 或者 wfs 的方式获取得到的最短路径结果即可。

以上所述实现丸趣 TV 小编给大家介绍的 Sqlview 动态发布地图图层的方法,希望对大家有所帮助!

看完上述内容,你们掌握 Sqlview 动态发布地图图层的方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2418字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 一区二区国产精品精华液 | 国产成人毛片毛片久久网 | 91精品中文字幕 | 亚洲欧美另类自拍第一页 | 欧美aa级片| 国产成人精品无码专区 | 亚洲欧美综合国产不卡 | 国内揄拍国产精品人妻门事件 | 色综合小说网 | 午夜激情视频在线 | 香蕉免费一区二区三区 | 大香伊人久久精品一区二区 | 日韩日韩日韩日韩日韩 | 少妇被爽到高潮喷水久久欧美精品 | 操欧美美女| 久久久久女人精品毛片 | 国产成人精品一区 | 人妻体内射精一区二区三四 | 隐私视频黄www小 | 久久天天躁狠狠躁夜夜 | 久久天天躁夜夜躁狠狠 | 亚洲欧美日韩综合一区在线观看 | 狠狠色噜噜狠狠狠狠777米奇 | 鲁大师在线视频播放免费观看 | 无码精品不卡一区二区三区 | 国产欧美一区二区三区免费看 | 精品久久久久久无码专区不卡 | 华人少妇被黑人粗大的猛烈进 | 亚洲精品无码av人在线观看 | 草草视频在线观看 | 狠狠久久久久久亚洲综合网 | 免费观看又色又爽又湿的软件 | 天天影视亚洲 | 免费无码又爽又刺激网站 | 精品国产日韩亚洲一区二区 | 精品煌色视频网站在线观看 | 成年超爽大片免费视频播放 | 人人草人人做人人爱 | 交视频在线播放 | 欧美成人观看视频在线 | 久久午夜羞羞影院免费观看 |