openLayers加载wms图层并定位到该图层

openLayers定位到wms图层

我们的wms是加载geoserver发布的服务,wms加载的图层是没法通过layer.getSource().getExtent()来获取到extents(边界)的;实现思路是通过postgis的函数(st_extent(geom))来获取extents;

在这里插入图片描述

返回前端后格式化一下成数组的extens就可以实现定位了。

后端部分逻辑代码:

@ApiOperation("获取行政区extent")@OpLog("获取行政区extent")@GetMapping("/extent")public Result<String> getRegionExtent( String xzqdm ) {return Result.ok(regionsService.getRegionExtent(xzqdm));}// sql代码
<select id="getRegionExtent" resultType="java.lang.String">SELECT st_extent(geom) from st_2k_region_s WHERE xzqdm = #{xzqdm}
</select>

前端部分代码:

/*** 根据行政区代码定位到wms的图层*/getViewWmsLayer(xzqdm = '530000') {getRegionExtent({xzqdm}).then(({result}) => {const extents = this.parseBoxString(result)console.log('extents:', extents)this.map.getView().fit(extents, {duration: 1000});})}/*** 把st_extent的box数据转化为数组* 例如:BOX(102.167950753 24.388888934,103.669001313 26.545210101)* 转化为:[102.167950753, 24.388888934, 103.669001313, 26.545210101]*/parseBoxString(boxString) {// 正则表达式匹配BOX(...)内的内容,并分割成两个坐标对  const regex = /BOX\(([\d.]+ [\d.]+),([\d.]+ [\d.]+)\)/;const matches = boxString.match(regex);if (!matches || matches.length < 3) {throw new Error('Invalid box string format');}// 提取出经纬度坐标,并转换为数字类型  const coord1 = matches[1].split(' ').map(Number);const coord2 = matches[2].split(' ').map(Number);return [...coord1, ...coord2];}

搞定!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23-LINUX--TCP连接状态

一.TCP服务的特点 传输层协议主要有两个&#xff1a;TCP 协议和 UDP协议。TCP 协议相对于UDP协议的特点是&#xff1a;面向连接、字节流和可靠传输。 使用TCP协议通信的双方必须先建立连接&#xff0c;然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源&a…

lammps案例:reaxff势模拟Fe(OH)3高温反应过程

大家好&#xff0c;我是小马老师。 本文分享一个reaxff反应势的案例。 该案例主要模拟Fe(OH)3在高温下的反应过程&#xff0c;主要代码来自lammps自带的案例。 lammps自带案例没有产物输出&#xff0c;故在此基础上稍加修改&#xff0c;增加了产物输出命令。 反应过程如下图…

解读大模型应用的可观测性

一、引言 随着人工智能技术的飞速发展&#xff0c;大模型作为AI领域的重要分支&#xff0c;正日益成为科技竞争的新高地。大模型通过输入大量语料进行训练&#xff0c;赋予计算机拥有像人类一样的“思考”能力&#xff0c;使其能够理解文本、图片、语音等内容&#xff0c;并进…

JavaWeb开发 3.Web开发 Web前端开发 ③ HTML、CSS

没有一朵花&#xff0c;一开始就是一朵花 —— 24.5.28 HTML、CSS知识在博主前端专栏&#xff0c;可以对照博客大致进行了解 https://blog.csdn.net/m0_73983707/category_12654678.htmlhttps://blog.csdn.net/m0_73983707/category_12654678.html

5. CSS的边框和阴影

第5章 边框与阴影 CSS3 为开发者提供了强大的工具&#xff0c;使得我们可以更容易地为网页元素添加视觉效果。这一章将详细介绍边框和阴影的新特性&#xff0c;包括如何使用圆角边框、边框图像、盒阴影和文本阴影&#xff0c;并展示一些实际应用的例子。 5.1 圆角边框&#x…

232转Profinet网关接扫码枪与PLC通讯在物流分拣线上的应用

一、背景 随着生活节奏的加快&#xff0c;网络购物需求非常大&#xff0c;从而造成快递站需要快速提取快递信息已达到快速出站的效果&#xff0c;这就用到了扫码枪&#xff0c;扫码枪作为采集设备&#xff0c;能够迅速准确地读取货物信息。并将数据传输至PLC控制器&#xff0c…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

JUC总结1

线程和进程的对比 进程是操作系统资源分配的最小单位&#xff0c;其包含了进程控制块、程序、数据等&#xff0c;在电脑上启动的一个个应用程序就是进程&#xff0c;当一个程序要被运行时&#xff0c;从磁盘中将这个应用程序的代码加载到内存中&#xff0c;就开启了一个进程。…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

【Python设计模式14】状态模式

状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。状态模式将不同状态的行为封装到不同的状态类中&#xff0c;使得状态之间的转换独立于对象本身&#xff0c;减少了条件语句的使用&#xff0c;提高了代…

Design and implementation of robot impedance controller

机器人阻抗控制器的设计与实现是一个复杂但关键的过程&#xff0c;它涉及到多个方面以确保机器人能够在外界环境的影响下保持稳定的性能。以下是对机器人阻抗控制器设计与实现的详细解答&#xff1a; 一、阻抗控制原理 阻抗控制的基本原理是建立一个期望的机器人位置和接触力…

股票交易vip快速通道有什么门槛?vip交易通道的开通流程!

证券公司的VIP通道通常是为了满足高端客户或高频交易客户的需求而设立的&#xff0c;提供更快速、更便捷的交易服务。证券公司VIP通道适用于有追涨停板需求的投资者&#xff0c;以及一些喜爱高频交易的投资者&#xff0c;总的来说就是快速&#xff0c;在交易主机排队靠前。 VI…

go-zero 实战(1)

环境准备 go 版本 go version go1.22.2 linux/amd64 goctl 安装 goctl&#xff08;官方建议读 go control&#xff09;是 go-zero微服务框架下的代码生成工具。使用 goctl 可以显著提升开发效率&#xff0c;让开发人员将时间重点放在业务开发上&#xff0c;其功能有&#xff1a…

pands使用openpyxl引擎实现EXCEL条件格式

通过python的openpyxl库&#xff0c;实现公式条件格式。 实现内容&#xff1a;D列单元格不等于E列同行单元格时标红。 #重点是formula后面的公式不需要“”号。 from openpyxl.styles import Color, PatternFill, Font, Border from openpyxl.styles.differential import Dif…

Java客户端SpringDataRedis(RedisTemplate)上手

文章目录 ⛄概述⛄快速入门❄️❄️导入依赖❄️❄️配置文件❄️❄️测试代码 ⛄数据化序列器⛄StringRedisTemplate⛄RedisTemplate的两种序列化实践方案总结 ⛄概述 SpringData是Spring中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模…

LLM学习笔记

Q1&#xff1a;SFT时&#xff0c;计算LOSS ​ LLM是自回归生成模型&#xff0c;每次只会生成一个 token&#xff0c;难道 SFT 时&#xff0c;对于一个 (L, D) 的数据&#xff0c;要调用 L 次LLM去计算loss&#xff1f; A1&#xff1a; ​ 在每个前向传播过程&#xff0c;模型…

HDU 2196 Computer(树形dp)

H D U 2196 C o m p u t e r &#xff08;树形 d p &#xff09; \Huge{HDU 2196 Computer&#xff08;树形dp&#xff09;} HDU2196Computer&#xff08;树形dp&#xff09; 文章目录 题意思路标程 题目链接&#xff1a;Problem - 2196 (hdu.edu.cn) 题意 给出一个n个节点的无…

论AI大模型炼丹与练舞的关系

AI大模型的训练和微调的区别&#xff0c;就像是在舞蹈中学习基础动作和编排新的舞蹈一样。 想象一下&#xff0c;你有一个神奇的舞蹈机器人&#xff0c;只要给它足够的舞蹈视频&#xff0c;它就能学会各种各样的舞步。 模型训练的过程就像是给这个舞蹈教练机器人一个包含了各种…

git将某次提交合并到另一个分支

一、需求背景 将分支b中的某一次提交单独合并到分支a 二、实现方案 需求&#xff1a;将分支b中的某一次提交单独合并到分支a 1.在git上查看指定某次提交的id&#xff0c;如下图所示&#xff1a; 也可以通过git log命令查看提交的id&#xff0c;如下图&#xff1a; git log…

CNN网络的介绍及实战

卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度学习模型&#xff0c;它在计算机视觉领域取得了巨大成功。CNN的设计灵感来自于生物学中的视觉系统&#xff0c;旨在模拟人类视觉处理的方式。CNN由多层卷积层和池化层堆叠而成&…