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)

相关推荐

  • openwrt内网穿透作用(openwrt内网穿透多端口)

    技术OpenWRT如何穿透内网这篇文章将为大家详细讲解有关OpenWRT如何穿透内网,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  UMU 把路由器放在公司,然后在家里想登陆它,这时

    攻略 2021年12月18日
  • 西汉建立时间,中国汉朝建立与公元多少年

    技术西汉建立时间,中国汉朝建立与公元多少年汉朝距今2216年西汉建立时间。因西汉建立是在公元前202年,而今年是公元2015年。即用公元前202年加上公元2015年,再减去1(因为没有公元0年),得到2216年。汉朝(前

    生活 2021年10月28日
  • ADO.NET SqlConnection怎么使用

    技术ADO.NET SqlConnection怎么使用这篇文章主要讲解了“ADO.NET SqlConnection怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“

    攻略 2021年12月3日
  • consumer自带函数式接口(console接口是常用接口吗)

    技术基于Consumer接口、Predicate接口初使用是怎样的这篇文章将为大家详细讲解有关基于Consumer接口、Predicate接口初使用是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这

    攻略 2021年12月20日
  • 12月13号

    技术12月13号 12月13号一.获取上传视频后id和用户名的信息protected void Page_Load(object sender, EventArgs e) {

    礼包 2021年12月14日
  • Django ManyToManyField 跨越中间表查询的方法是什么

    技术Django ManyToManyField 跨越中间表查询的方法是什么本篇文章为大家展示了Django ManyToManyField 跨越中间表查询的方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过

    攻略 2021年11月30日