使用OpenLayers調用geoserver發布的wms服務

1.前端vue3調用代碼

<template><div><div ref="mapContainer" class="map"></div></div>
</template><script setup lang="ts">
import { ref, onMounted } from "vue";
import Map from "ol/Map";
import View from "ol/View";
import TileLayer from "ol/layer/Tile";
import XYZ from "ol/source/XYZ";
import { fromLonLat } from "ol/proj";
import OSM from 'ol/source/OSM';
import ImageLayer from 'ol/layer/Image'; // 修改點1:導入ImageLayer
import ImageWMS from 'ol/source/ImageWMS'; // 修改點2:導入ImageWMS
// 調試信息const mapContainer = ref<HTMLElement | null>(null);onMounted(() => {mapdata();
});const mapdata = () => {if (!mapContainer.value) return;// 創建底圖 - 使用OSMconst osmLayer = new TileLayer({source: new OSM({crossOrigin: "anonymous",}),});// 創建WMS圖層const wmsLayer = new ImageLayer({source: new ImageWMS({ratio: 1,url: "http://localhost:3001/geoserver/wei/wms",crossOrigin: "anonymous",params: {'FORMAT': 'image/jpeg', // 注意:全小寫或按照服務要求'VERSION': '1.1.1', // 通常為1.1.0或1.3.0,需要根據服務調整'LAYERS': 'wei:LE07_L1GT_128036_20010826_20180228_01_T2_B6_VCID_1' // 注意層名}})});// 添加錯誤處理
//   wmsLayer.getSource().on('imageloaderror', (event) => {
//   console.error('WMS 加載錯誤', event);
// });// 創建地圖var map = new Map({target: mapContainer.value,layers: [osmLayer,wmsLayer], // 底圖和WMS圖層疊加view: new View({// 注意:這里的中心點坐標需要根據你的WMS圖層的坐標系來調整// 如果是EPSG:3857,那么可以直接使用[727171.3138, 3808868.97942]// 但如果是EPSG:4326,則可能需要轉換center: [11949614.44557,4075793.68680], // 這里假設已經是3857坐標zoom: 10,}),});};
</script><style scoped>
/* 保證容器可見 */
.debug-container {position: relative;
}.map {width: 1920px;height: 1080px; /* 關鍵:必須設置高度 */background: #e0f7fa; /* 調試背景色 */border: 2px dashed #4caf50; /* 調試邊框 */
}.debug-info {position: absolute;top: 10px;left: 10px;background: rgba(0, 0, 0, 0.7);color: white;padding: 8px 12px;border-radius: 4px;font-family: monospace;
}
</style>

2.代碼中url ,params,中心點配置見gerserver的預覽

在這里插入圖片描述
3.啟動gerserver服務發布你的數據后啟動預覽

在這里插入圖片描述
在這里插入圖片描述
f12進入Network 點擊wms?… 可以查看前端代碼中的調用參數
在這里插入圖片描述
這里就可以看到前端vue代碼調用時的參數
在這里插入圖片描述

在這里插入圖片描述
前端調用代碼中的中心點可以鼠標上去的任意一個坐標
在這里插入圖片描述

在這里插入圖片描述
4.啟動vue3項目,發現跨域
在這里插入圖片描述
5,因為我們的geoserver服務是tomcat中啟動的,所以我們給tomcat配置跨域。所以給tomcat 的web.xml 添加這段代碼就可以,完了重啟tomcat
在這里插入圖片描述

<filter><filter-name>CorsFilter</filter-name><filter-class>org.apache.catalina.filters.CorsFilter</filter-class><init-param><param-name>cors.allowed.origins</param-name><param-value>*</param-value></init-param>
</filter><filter-mapping><filter-name>CorsFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

然后在啟動vue3項目訪問,此時我們發布的數據前端調用成功了
在這里插入圖片描述
注意發布的數據配置:在geoserver中發布數據時這塊選擇3857,要不前端用OpenLayer調用會報錯
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913145.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913145.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913145.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二十七、【測試執行篇】測試計劃:前端一鍵觸發測試 實時狀態追蹤

二十七、【測試執行篇】測試計劃:前端一鍵觸發測試 & 實時狀態追蹤 前言準備工作第一部分:后端 API 確認第二部分:前端實現 - 觸發執行與狀態輪詢第三部分:后端 API 增強第四部分:全面測試總結前言 一個完整的自動化測試流程,從測試用例的創建到報告的生成,最終都需…

60天python訓練營打卡day52

學習目標&#xff1a; 60天python訓練營打卡 學習內容&#xff1a; DAY 52 神經網絡調參指南 知識點回顧&#xff1a; 1.隨機種子 2.內參的初始化 3.神經網絡調參指南 a.參數的分類 b.調參的順序 c.各部分參數的調整心得 作業&#xff1a;對于day’41的簡單cnn&#xff0c;看…

【Modern C++ Part3】Understand-decltype

條款三&#xff1a;理解decltype decltype是一個怪異的發明。給定一個變量名或者表達式&#xff0c;decltype會告訴你這個變量名或表達式的類型。decltype的返回的類型往往也是你期望的。然而有時候&#xff0c;它提供的結果會使開發者極度抓狂而不得參考其他文獻或者在線的Q&…

前端批量請求場景

文章目錄 一、批量請求1、Promise.allSettled2、返回值穿透 二、案例1、 批量任務2、緩存優化3、另一種實現方式 一般時候前端都是簡單的查詢任務&#xff0c;復雜的數據獲取都是后臺處理好再返回&#xff0c;如果遇到接口流程化處理、數據組裝&#xff0c;可以參考一下。 一、…

芊芊妙音:智能變聲,玩轉聲音魔法

在當今豐富多彩的社交和娛樂環境中&#xff0c;聲音的魅力正逐漸被更多人發現和利用。無論是線上社交、短視頻創作還是直播互動&#xff0c;一個獨特而有趣的聲音總能讓人眼前一亮&#xff0c;甚至成為個人風格的一部分。《芊芊妙音》正是這樣一款能夠幫助用戶輕松實現聲音變換…

安防監控視頻匯聚平臺EasyCVR v3.7.2版云端錄像無法在web端播放的原因排查和解決方法

有用戶反饋&#xff0c;在使用EasyCVR視頻匯聚平臺時&#xff0c;發現云端錄像無法在Web頁面正常播放。為幫助大家高效解決類似困擾&#xff0c;本文將詳細剖析排查思路與解決方案。 用戶軟件版本信息&#xff1a; 問題排查與解決步驟&#xff1a; 1&#xff09;問題復現驗證…

vxe-upload vue 實現附件上傳、手動批量上傳附件的方式

vxe-upload vue 實現附件上傳、手動批量上傳附件的方式 查看官網&#xff1a;https://vxeui.com 安裝 npm install vxe-pc-ui4.6.47// ... import VxeUIAll from vxe-pc-ui import vxe-pc-ui/lib/style.css // ...createApp(App).use(VxeUIAll).mount(#app) // ...上傳附件支…

leaflet【十一】地圖瓦片路徑可視化

前言 在開發調試過程當中&#xff0c;如果引入的是公司內部的Gis地圖信息或者一些第三方定制來的Gis地圖數據&#xff0c;當某一些地圖塊數據缺失的時候&#xff0c;要打開F12去一個個找那些鏈接&#xff08;去找對應的xy與layer&#xff09;失效、那么你可能需要使用以下插件…

ES6從入門到精通:模塊化

ES6 模塊化基礎概念ES6 模塊化是 JavaScript 官方標準&#xff0c;通過 import 和 export 語法實現代碼拆分與復用。模塊化特點包括&#xff1a;每個文件是一個獨立模塊&#xff0c;作用域隔離。支持靜態分析&#xff0c;依賴關系在編譯時確定。輸出的是值的引用&#xff08;動…

stm32 USART串口協議與外設——江協教程踩坑經驗分享

江協stm32學習&#xff1a;9-1~9-3 USART串口協議與外設 一、串口通信基礎知識 1、通信類型&#xff1a; 全雙工通信&#xff1a;通信雙方能夠同時進行雙向通信。一般有兩根通信線&#xff0c;如USART中的TX&#xff08;發送&#xff09;和RX&#xff08;接收&#xff09;線&am…

深度學習中的一些名詞

向前傳播 forward pass 在機器學習中&#xff0c;輸入的feature, 通過預測模型&#xff0c;輸出預測值&#xff0c;此過程稱之為向前傳播&#xff1b; 向后傳播 backward pass 為了將預測與真實值的產值減小&#xff0c;需要根據差值&#xff0c;更新模型中的參數&#xff0c;此…

鴻蒙系統(HarmonyOS)應用開發之手勢鎖屏密碼鎖(PatternLock)

項目概述 基于鴻蒙&#xff08;OpenHarmony&#xff09;平臺開發的手勢密碼鎖應用&#xff0c;旨在為用戶提供安全、便捷且具有良好交互體驗的身份驗證方式。通過手勢圖案輸入&#xff0c;用戶可以輕松設置和驗證密碼&#xff0c;提升設備的安全性和個性化體驗。 功能特點 手…

vue文本插值

好的&#xff0c;我們來詳細講解 Vue 中最基礎的數據展示方式&#xff1a;文本插值和在其內部使用的 JavaScript 表達式。 1. 文本插值 (Text Interpolation) 知識點: 文本插值是 Vue 中最基本的數據綁定形式。它使用“Mustache”語法&#xff08;雙大括號 {{ }}&#xff09;…

Python:線性代數,向量內積諧音記憶。

目錄1 先說結論2 解釋3 歡迎糾錯4 論文寫作/Python 學習智能體------以下關于 Markdown 編輯器新的改變功能快捷鍵合理的創建標題&#xff0c;有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、…

小程序導航設置更多內容的實現方法

在小程序中實現導航欄設置更多內容&#xff0c;可以通過以下幾種方式實現&#xff1a; 1. 使用原生導航欄自定義按鈕 javascript // app.json 或頁面.json中配置 {"navigationBarTitleText": "首頁","navigationBarTextStyle": "black&q…

SpringBoot 解決配置文件有黃色波浪線

在application.properties配置文件中有黃色波浪線&#xff0c;是警告!! 原因&#xff1a;編碼格式不一致&#xff01;&#xff01; 解決&#xff1a;Settings| Editor | File Encodings | 選擇UTF-8

在 Vue 3 中全局使用 Suspense 組件

Suspense 是 Vue 3 引入的一個內置組件&#xff0c;不需要引用可以直接用。用于處理異步依賴的等待狀態。雖然 Suspense 主要用于異步組件&#xff0c;但你也可以全局地使用它來管理整個應用的加載狀態。 全局 Suspense 的基本用法 1. 在根組件中使用 Suspense // main.js 或…

筆記/計算機網絡

Content 計算機網絡部分核心概念十大網絡協議一覽 計算機網絡部分核心概念 1. 什么是計算機網絡&#xff1f;它最基本的功能是什么&#xff1f; 計算機網絡是指通過某種傳輸介質將多臺獨立的計算機或設備連接起來&#xff0c;實現數據交換和資源共享的系統。其最基本的功能是數…

時頻圖數據集更正程序,去除坐標軸白邊及調整對應的標簽值

當數據集是時頻圖時可能有一個尷尬的問題&#xff0c;就是數據集制作好后&#xff0c;發現有白邊。 其實這也不影響訓練模型&#xff0c;可能對模型訓練效果的影響也是微乎其微的&#xff0c;于是大多數情況我會選擇直接用整張圖片訓練模型。但是&#xff0c;有的情況下&#x…

mv重命名報錯:bash:未預期的符號 ‘(‘附近有語法錯誤

文章目錄 一、報錯背景二、解決方法2.1、方法一&#xff1a;文件名加引號2.2、方法二&#xff1a;特殊字符前加\進行轉義 一、報錯背景 在linux上對一文件執行重命名時報錯。原因是該文件名包含空格與括號。 文件名如下&#xff1a; aa &#xff08;1).txt執行命令及報錯如下…