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

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

Sqlview动态发布地图图层的方法是什么?我相信很多没有经验的人都不知所措。为此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。

1.SQL Views简介

geoserver PostgreSQL OpenLayers(Layers)是目前主流的gis开发工具。Postgresql用于存储地图数据,geoserver用于发布地图数据,openlayers或活页用于访问发布的地图。通常情况下,当shapefile格式的数据导入postgresql数据库时,我们需要通过geoserver发布所有的数据,这样我们就可以访问它。正常情况下,这种操作方式是没有问题的,因为地图作为基础服务,一旦发布就不会改变。但是它对室内地图不起作用。如果一个购物中心有五层,每层有五个地图图层,对于这样的购物中心,所有的25个地图图层都需要在geoserver中发布才能访问该购物中心的所有地图。如果你还能忍受出版这个商场的25层,你还能忍受出版几千个商场的地图吗?如果你不能忍受,你必须找到解决办法。既然发布地图是一个机械重复的任务,我们能不能想办法帮我们完成这些任务?这就是我们的sqlView出来的时候。

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

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

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

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

(4)SQLViews是数据库操作和查询的结果,wfs_t不能用来操作它,但wfs和WMS可以正常请求或查询。

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

(1)登录到地理服务器,单击图层,选择工作区,并创建一个新图层。

(2)创建一个新的SQL视图视图层并发布它。

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

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

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

(3)层访问

当您通过wms获取地图时,您只需要通过viewparams传递tbl值。

http://10 . 20 . 135 . 14/geo server/parking/WMS?SERVICE=wmsversversion=1 . 3 . 0 request=GetMapFORMAT=image/pngtransparrent=true layers=parking:vTingcheweiCRS=EPSG:4326 styles=WIDTH=2700 height=1200 bbox=20.02708134918213,110.33805803565978,20 . 0381787

viewparams格式一般为viewparams=p1:v1p2:v2…可以添加几个参数。不同参数之间;分离,单个参数是键值对,即p1是参数名,v1是参数值。

通过wms访问已发布视图的方法如下:

varparams={ layers : ' parking : vtingchewei ',format : ' image/png ' };varviewparams=[' TBL : wanghaigoujia _ B2 _ ting chewei '];params . view params=view params;varvTingchewei=new ol . layer . image({ source : newol . source . imagewms({ URL : ' http://10 . 20 . 135 . 14/geoserver/parking/WMS ',params:params,serverType:'geoserver ',})}));这样,无论有多少商店需要在geoserver中发布五次视图,发布视图的代码都可以预写在geoserver中并打包。这样,该系统可以在任何购物中心使用,而无需发布地图。

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

解决了图层发布的问题,我们终于可以松一口气了。然而,没想到棘手的问题来了。让领导做室内导航功能。动手吧。我们是努力工作的程序员。那怎么做室内导航呢?在做这个功能之前,我们还是要计划一下。首先,编写最短路径查询算法;然后在查询路径时,只需要将起点和终点的位置输入到算法中进行查询。最后,查询结果由wms或wfs获得并显示在地图上。

写最短路径规划算法时,需要输入:用户所在楼层的道路名称、起点和终点的位置,然后我们会奋战三天三夜,把它完成。

然后,查询,简单易行,只需按照上面所说的,发布一个基于商场所有五层对应楼层的结果路径视图。机智吗?不不不!我只是不知道该怎么想。这时候,肯定需要换一种新的方法,把最短路径规划算法写成一个Function,嵌入到postgresql数据库中。该功能的输入参数为:用户所在楼层、起始位置、结束位置;输出参数是起点和终点直接经过的点的坐标。

通过wms或wfs获取最短路径结果。

上面提到的边肖介绍的用Sqlview实现动态发布地图图层的方法会对你有帮助!

看完以上内容,你掌握了用Sqlview动态发布地图图层的方法了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/127857.html

(0)

相关推荐

  • Windows Oracle 11G R2搭建方法是什么

    技术Windows Oracle 11G R2搭建方法是什么本篇内容主要讲解“Windows Oracle 11G R2搭建方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年11月9日
  • pythondate函数用法(pythonannotate函数如何注释点)

    技术Python中missing()函数怎么使用这篇文章主要介绍“Python中missing()函数怎么使用”,在日常操作中,相信很多人在Python中missing()函数怎么使用问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年12月23日
  • Python 3.1核心语言的变化是怎么样的

    技术Python 3.1核心语言的变化是怎么样的Python 3.1核心语言的变化是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这里我们将对Pyt

    攻略 2021年11月2日
  • 铝怎么拼音,氮化铝是什么,有什么用途啊

    技术铝怎么拼音,氮化铝是什么,有什么用途啊中文名称:氮化铝拼音:danhualv英文名称:alumin(i)um nitride分子式:AlN分子量:40.99密度:3.235g/cm3说明:AlN属类金刚石氮化物,最高

    生活 2021年10月29日
  • Android输入法弹窗bug怎么处理

    技术Android输入法弹窗bug怎么处理小编给大家分享一下Android输入法弹窗bug怎么处理,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言最近发现一个bug,在项目中的某个界面,每当弹出输入法

    攻略 2021年10月27日
  • HTTP代理和SOCKS之间有什么区别

    技术HTTP代理和SOCKS之间有什么区别这期内容当中小编将会给大家带来有关HTTP代理和SOCKS之间有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Socket secur

    攻略 2021年11月11日