返回顶部
首页 > 资讯 > 数据库 >Sqlview动态发布地图图层的方法是什么
  • 381
分享到

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

2024-04-02 19:04:59 381人浏览 八月长安
摘要

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

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的方式获取得到的最短路径结果即可。

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

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

您可能感兴趣的文档:

--结束END--

本文标题: Sqlview动态发布地图图层的方法是什么

本文链接: https://lsjlt.com/news/68947.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Sqlview动态发布地图图层的方法是什么
    Sqlview动态发布地图图层的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.SQL Views简介Geoserver+post...
    99+
    2024-04-02
  • java地图生成的方法是什么
    在Java中生成地图的方法有以下几种:1. 使用图像处理库:可以使用Java图像处理库,如JavaFX、AWT或Swing来加载地图...
    99+
    2024-02-29
    java
  • vue动态加载本地图片的处理方法
    发现问题 今天遇到一个在vue文件中引入本地图片的问题,于是有了这篇文章。 通常,我们的一个img标签在html中是这么写的: <img src="../imag...
    99+
    2024-04-02
  • PS渐变映射调整图层的方法是什么
    这篇文章主要介绍“PS渐变映射调整图层的方法是什么”,在日常操作中,相信很多人在PS渐变映射调整图层的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PS渐变映射调整图层的方法是什么”的疑惑有所帮助!...
    99+
    2023-07-04
  • defpoints图层的作用是什么
    这篇文章主要介绍“defpoints图层的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“defpoints图层的作用是什么”文章能帮助大家解决问题。defpoints图层是用来放置各种标注...
    99+
    2023-07-05
  • PyTorch动态计算图的概念是什么
    PyTorch动态计算图是指在PyTorch中,计算图是动态构建的,即在每次前向传播过程中都会重新构建计算图。这意味着用户可以在运行...
    99+
    2024-03-05
    PyTorch
  • Excel截图的方法是什么
    这篇文章主要介绍“Excel截图的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Excel截图的方法是什么”文章能帮助大家解决问题。Excel截图方法方法一、快捷键截图选中所需要的截图区域...
    99+
    2023-07-01
  • Ecilisp截图的方法是什么
    在Emacs中使用Ecilisp模式时,可以使用以下步骤截取Ecilisp代码的屏幕截图: 将光标移动到要截图的代码部分。 按下 ...
    99+
    2024-03-02
    Ecilisp
  • Android实现动态添加数据与堆叠折线图的方法是什么
    本篇内容介绍了“Android实现动态添加数据与堆叠折线图的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果视频引用描述本示例采...
    99+
    2023-06-25
  • SAP客户主数据的地图集成方法是什么
    这篇文章主要介绍“SAP客户主数据的地图集成方法是什么”,在日常操作中,相信很多人在SAP客户主数据的地图集成方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SAP客户主数据的地图集成方法是什么”的疑...
    99+
    2023-06-05
  • Component的图标和图片处理方法是什么
    本篇内容介绍了“Component的图标和图片处理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这个React应用左上角的reac...
    99+
    2023-06-04
  • Android动态更换应用图标的方法
    这篇文章主要介绍“Android动态更换应用图标的方法”,在日常操作中,相信很多人在Android动态更换应用图标的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android动态更换应用图标的方法”的疑...
    99+
    2023-07-02
  • html5中的绘图方法是什么
    本篇内容主要讲解“html5中的绘图方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5中的绘图方法是什么”吧! ht...
    99+
    2024-04-02
  • windows桌面图标自动排列的方法是什么
    Windows系统中,可以使用以下方法自动排列桌面图标:1. 右键单击桌面空白区域,选择“查看”选项。2. 在“查看”子菜单中,确保...
    99+
    2023-09-17
    windows
  • ps复制图层的快捷键是什么
    本文小编为大家详细介绍“ps复制图层的快捷键是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ps复制图层的快捷键是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ps复制图层的快捷键:复制图层的快捷键为“...
    99+
    2023-07-02
  • JDK6动态编译的方法是什么
    这篇文章主要介绍“JDK6动态编译的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JDK6动态编译的方法是什么”文章能帮助大家解决问题。JDK6开始提供了动态编译的API,在许多应用场景都...
    99+
    2023-06-17
  • redis加动态锁的方法是什么
    在Redis中实现动态锁的方法有多种,以下是一种常见的方法:1. 使用SET命令设置锁:在获取锁之前,使用SET命令将一个特定的键值...
    99+
    2023-08-30
    redis
  • envoy的动态配置方法是什么
    Envoy的动态配置方法是通过使用API管理平台或命令行工具来更新Envoy配置。Envoy支持多种配置更新方法,包括: 使用E...
    99+
    2023-10-22
    envoy
  • prometheus动态配置的方法是什么
    Prometheus的动态配置一般是通过文件服务发现或者远程配置方式来实现的。 文件服务发现:Prometheus支持通过文件服...
    99+
    2024-03-14
    prometheus
  • 微信小程序Echarts动态使用及图表层级踩坑解决的方法
    本篇内容介绍了“微信小程序Echarts动态使用及图表层级踩坑解决的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!介绍一下Echarts...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作