当前位置: 首页 > backend >正文

vue项目通过GetCapabilities获取wms服务元数据信息并在openlayers进行叠加显示

vue工程通过openlayers加载wms服务:

<template><div id="map" ref="mapContainer"></div>
</template><script>
import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import ImageLayer from 'ol/layer/Image';
import WMSCapabilities from 'ol/format/WMSCapabilities';
import OSM from 'ol/source/OSM';
import TileWMS from 'ol/source/TileWMS';export default {name: 'WmsMap',data() {return {map: null,wmsUrl: 'https://your-wms-service-url'};},mounted() {this.initMap();},methods: {async initMap() {// 创建基础地图const baseLayer = new TileLayer({source: new OSM()});// 初始化地图视图const view = new View({center: [0, 0],zoom: 2});// 创建地图实例this.map = new Map({target: this.$refs.mapContainer,layers: [baseLayer],view: view});// 加载WMS服务await this.loadWmsLayer();},async loadWmsLayer() {try {// 获取WMS能力文档const parser = new WMSCapabilities();const response = await fetch(this.wmsUrl+"?request=GetCapabilities&service=WMS");const text = await response.text();const result = parser.read(text);// 解析WMS能力文档并创建图层const wmsLayer = this.createWmsLayer(result);// 添加到地图this.map.addLayer(wmsLayer);} catch (error) {console.error('加载WMS服务失败:', error);}},createWmsLayer(capabilities) {// 获取第一个可用的图层(实际应用中可能需要选择特定图层)const layerInfo = capabilities.Capability.Layer.Layer[0];// 创建WMS源const wmsSource = new TileWMS({url: this.wmsUrl,params: {'LAYERS': layerInfo.Name,'TILED': true,'VERSION': capabilities.version},serverType: 'geoserver', // 根据你的WMS服务器类型调整crossOrigin: 'anonymous'});// 创建WMS图层return new TileLayer({source: wmsSource,opacity: 0.7,title: layerInfo.Title || layerInfo.Name});},}
};
</script><style scoped>
#map {width: 100%;height: 100%;
}
</style>

http://www.xdnf.cn/news/871.html

相关文章:

  • prometheus-operator部署服务监控其他节点mysql服务
  • 重构・协同・共生:传统代理渠道数字化融合全链路解决方案
  • 如何远程访问家中服务器-FRP内网穿透详细
  • 获取电脑信息(登录电脑的进程、C盘文件信息、浏览器信息、IP)
  • Windows网络及服务:制作系统盘
  • idea30天使用无限使用
  • uni-app 状态管理深度解析:Vuex 与全局方案实战指南
  • Android audio_policy_configuration.xml加载流程
  • 云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)
  • 在 UE5 编辑器中,由于游戏设置 -> EV100 设置,点击播放前后的光照不同。如何保持点击播放前后的光照一致?
  • 如何在腾讯云Ubuntu服务器上部署Node.js项目
  • SVM(支持向量机)
  • Ray Tracing(光线追踪)与 Ray Casting(光线投射)
  • 【pytorch】torch.nn.Unfold操作
  • PyTorch实现糖尿病预测的CNN模型:从数据加载到模型部署全解析【N折交叉验证、文末免费下载】
  • Android端使用无障碍服务实现远程、自动刷短视频
  • 流量抓取工具(wireshark)
  • 大文件分片上传进阶版(新增md5校验、上传进度展示、并行控制,智能分片、加密上传、断点续传、自动重试),实现四位一体的网络感知型大文件传输系统‌
  • 二叉树操作与遍历实现
  • 详细介绍:MCP(大模型上下文协议)的架构与组件,以及MCP的开发实践
  • VTK官方C++ demo1
  • 论文分享:【2024 CVPR】Vision-and-Language Navigation via Causal Learning
  • Harbor对接非AWS对象存储
  • 零基础学Python——第六章:Python标准库
  • mongodb 存储数据的具体实现方式
  • 计算机视觉中的正则化:从理论到实践的全面解析
  • 缓存设计模式
  • HTTP与HTTPS的区别
  • 固定资产全生命周期管理:采购至报废的高效管理路径
  • CC注入Tomcat Upgrade/Executor/WebSocket内存马