OpenLayers 加載鼠標位置控件

注:當前使用的是 ol 5.3.0 版本,天地圖使用的key請到天地圖官網申請,并替換為自己的key

地圖控件是一些用來與地圖進行簡單交互的工具,地圖庫預先封裝好,可以供開發者直接使用。OpenLayers具有大部分常用的控件,如縮放、導航、鷹眼、比例尺、旋轉、鼠標位置等。這些控件都是基于 ol.control.Control基類進行封裝的,可以通過Map對象的controls屬性或者調用addControl方法添加到地圖中。地圖控件通過HTML插入到Map頁面,可以利用CSS調整地圖控件樣式。OpenLayers初始化地圖時利用ol.control.default默認加載了縮放控件(ol.control.Zoom

本節主要介紹鼠標位置控件

1. 鼠標位置控件

鼠標位置控件用于顯示當前地圖容器中鼠標焦點處空間坐標值,方便用戶確認導航或者漫游位置。OpenLayers鼠標位置控件默認顯示在地圖右上角,可以通過自定義樣式進行調整。

1.1. 創建鼠標位置目標容器

創建鼠標位置DIV容器,并設置其CSS樣式

<body><div id="map" title="地圖顯示"></div><div class="mouse-div" id="mouse-div"></div>
</body>

設置鼠標位置控件居于地圖頂部,并居中顯示。

#mouse-div{position: relative;margin: 0 auto;top: 10px;width: 200px;height: 40px;line-height: 40px;background: #060505ba;text-align: center;color: #fff;border-radius: 5px;
}

1.2. 創建鼠標控件

創建鼠標控件需要設置坐標顯示格式、顯示坐標值的投影坐標系、自定義鼠標顯示容器類名以及顯示坐標的墓表容器等。

// 創建鼠標控件
const mousePositionControl = new ol.control.MousePosition({// 坐標格式,4表示顯示坐標值保留四位小數coordinateFormat: ol.coordinate.createStringXY(4),// 地圖投影坐標系(若未設置,則輸出默認投影坐標系的坐標)projection: "EPSG:4490",// 坐標信息容器CSS類名,默認為ol-mouse-positionclassName: 'mouse-position',// 顯示鼠標信息的目標容器target: document.getElementById('mouse-div'),// 未定義坐標的標記undefinedHTML:'&nbsp'
})

1.3. 加載鼠標位置控件

加載鼠標位置控件的方法有兩種,一種是通過Map屬性controls加載,另一種是通過Map方法addControl加載。

// 方式1
const map = new ol.Map({target: "map",view: new ol.View({center: [11444274, 12707441],zoom: 5,worldsWrap: true,minZoom: 1,maxZoom: 20,}),// 鼠標控件:鼠標在地圖上移動時顯示坐標信息。controls: ol.control.defaults().extend([mousePositionControl])
})// 方式2
map.addControl(mousePositionControl)

2. 完整代碼

其中libs文件夾下的包需要更換為自己下載的本地包或者引用在線資源。

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>加載鼠標位置控件</title><meta charset="utf-8" /><script src="../libs/js/ol-5.3.3.js"></script><script src="../libs/js/jquery-2.1.1.min.js"></script><link rel="stylesheet" href="../libs/css//ol.css"><style>* {padding: 0;margin: 0;font-size: 14px;font-family: '微軟雅黑';}#map {position: absolute;width: 100%;height: 100%;}#mouse-div{position: relative;margin: 0 auto;top: 10px;width: 200px;height: 40px;line-height: 40px;background: #060505ba;text-align: center;color: #fff;border-radius: 5px;}</style>
</head>
<body><div id="map" title="地圖顯示"></div><div class="mouse-div" id="mouse-div"></div>
</body>
</html>
<script>//==============================================================================////============================天地圖服務參數簡單介紹=============================////================================vec:矢量圖層=================================////================================img:影像圖層=================================////================================cva:注記圖層=================================////=========================其中:_c表示經緯度,_w表示投影========================////=============================================================================//const TDTImgLayer = new ol.layer.Tile({title: "天地圖影像圖層",source: new ol.source.XYZ({url: "http://t0.tianditu.com/DataServer?T=img_c&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2",attibutions: "天地圖注記描述",crossOrigin: "anoymous",wrapX: false})})const TDTImgCvaLayer = new ol.layer.Tile({title: "天地圖影像注記圖層",source: new ol.source.XYZ({url: "http://t0.tianditu.com/DataServer?T=cia_c&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2",attibutions: "天地圖注記描述",crossOrigin: "anoymous",wrapX: false})})// 創建鼠標控件const mousePositionControl = new ol.control.MousePosition({// 坐標格式coordinateFormat: ol.coordinate.createStringXY(4),// 地圖投影坐標系(若未設置,則輸出默認投影坐標系的坐標)projection: "EPSG:4326",// 坐標信息容器CSS類名,默認為ol-mouse-positionclassName: 'mouse-position',// 顯示鼠標信息的目標容器target: document.getElementById('mouse-div'),// 未定義坐標的標記undefinedHTML:'&nbsp'})const map = new ol.Map({target: "map",loadTilesWhileInteracting: true,view: new ol.View({center: [11444274, 12707441],zoom: 5,worldsWrap: true,minZoom: 1,maxZoom: 20,}),// 鼠標控件:鼠標在地圖上移動時顯示坐標信息。controls: ol.control.defaults().extend([// 加載鼠標控件// mousePositionControl])})map.addControl(mousePositionControl)map.addLayer(TDTImgLayer)map.addLayer(TDTImgCvaLayer)
</script>

OpenLayers示例數據下載,請回復關鍵字:ol數據

全國信息化工程師-GIS 應用水平考試資料,請回復關鍵字:GIS考試

【GIS之路】 已經接入了智能助手,歡迎關注,歡迎提問。

歡迎訪問我的博客網站-長談GIShttp://shanhaitalk.com

都看到這了,不要忘記點贊、收藏 + 關注

本號不定時更新有關 GIS開發 相關內容,歡迎關注 !

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

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

相關文章

知識宇宙-學習篇:學編程為什么從C語言開始學起?

名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。——蘇軾《稼說送張琥》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄 一、C語言的歷史地位與影響力1. 編程語言的"鼻祖"2. 現代技術的基礎 二、…

手機IP地址更換的影響與操作指南

在移動互聯網時代&#xff0c;IP地址如同手機的“網絡身份證”&#xff0c;其變更可能對上網體驗、隱私安全及服務訪問產生連鎖反應。無論是為了繞過地域限制、保護隱私&#xff0c;還是解決網絡沖突&#xff0c;了解IP更換的影響與正確操作方法都至關重要。本文將系統分析影響…

基于Alibaba Cloud Linux + 寶塔面板安裝 LibreOffice 全攻略流程

LibreOffice 是一款功能強大的辦公軟件,默認使用開放文檔格式 (OpenDocument Format , ODF), 并支持 *.docx, *.xlsx, *.pptx 等其他格式。 官網:https://www.libreoffice.org/ 或 https://zh-cn.libreoffice.org/ Alibaba Cloud Linux 3(Soaring Falcon) 是阿里云自主研發…

UniApp 微信小程序綁定動態樣式 :style 避坑指南

在使用 UniApp 開發跨端應用時&#xff0c;綁定動態樣式 :style 是非常常見的操作。然而&#xff0c;很多開發者在編譯為 微信小程序 時會遇到一個奇怪的問題&#xff1a; 原本在 H5 中可以正常渲染的樣式&#xff0c;在微信小程序中卻不生效&#xff01; 讓我們通過一個示例來…

WebSocket學習總結

WebSocket 是一種基于TCP的網絡通信協議&#xff0c;允許瀏覽器和服務器之間進行全雙工、實時、低延遲的雙向數據傳輸。它突破了傳統HTTP協議的限制&#xff08;請求-響應模式&#xff09;&#xff0c;特別適合需要實時通信的場景&#xff08;如聊天、實時數據推送、游戲等&…

【screen-recorder-tts】RPG 游戲字幕語音實時合成,讓無聲文字游戲變有聲

screen-recorder-tts RPG 游戲字幕語音實時合成&#xff0c;讓無聲文字游戲變有聲&#xff01; 歡迎大佬們提 PR&#xff0c;一起完善這個項目&#xff01;&#xff01;&#xff01; Real-time TTS for RPG game subtitles, turning silent text games into audio experienc…

深入解析Spring Boot與Redis的緩存集成實踐

深入解析Spring Boot與Redis的緩存集成實踐 引言 在現代Web應用中&#xff0c;緩存技術是提升系統性能的重要手段之一。Redis作為一種高性能的內存數據庫&#xff0c;廣泛應用于緩存場景。本文將詳細介紹如何在Spring Boot項目中集成Redis&#xff0c;并探討其在實際開發中的…

4月報 | SeaTunnel支持TDengine的多表Sink功能

各位熱愛 Apache SeaTunnel 的小伙伴們&#xff0c;今年 4 月份月報更新啦&#xff01;這里將記錄 SeaTunnel 社區每月的重要更新&#xff0c;歡迎關注&#xff01; 在本月的眾多更新中&#xff0c;最令人關注的一項新特性是——TDengine 多表 Sink 功能的支持&#xff08;由 …

vue項目表格甘特圖開發

?? 甘特圖可以管理項目進度,生產進度等信息,管理者可以更直觀的查看內容。 1. 基礎環境搭建 引入 dhtmlx-gantt 插件引入插件樣式 dhtmlxgantt.css引入必要的擴展模塊(如 markers、tooltip)創建 Vue 組件并掛載 DOM 容器初始化 gantt 圖表配置2. 數據準備與處理 定義任務…

華為HCIP-Cloud-Service認證H13-821V2.0-002

1.以下關于 HiLens 關鍵能力的說法錯誤的是?&#xff08;C&#xff09; A.HiLens 能提供模型優化框架、自動壓縮模型能力&#xff0c;將模型轉換為目標芯片所支持的模 型格式 B.在 HLens 平臺上開發的 Ski11 可以運行到任何基于華為海思芯片的設備上 C.HilLens 平臺只能導入從…

【教程】給Apache服務器裝上輕量級的防DDoS模塊

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 背景說明 最近我的網站在被人瘋狂刷流量&#xff0c;導致正常訪問都不行&#xff0c;沒辦法只好找找怎么給他限制一下。 apache自帶有一個防刷模塊mod_…

pytorch 15.2 學習率調度在PyTorch中的實現方法

文章目錄 一、優化器與狀態字典&#xff08;state_dict&#xff09;1.1 優化器相關參數介紹1.2 模型的本地保存與讀取方法 二、LambdaLR基本使用方法三、LambdaLR學習率調度實驗3.1 前期準備與匿名函數定義 學習率調度作為模型優化的重要方法&#xff0c;也集成在了PyTorch的 …

【FAQ】spring boot 3 集成 nacos

拉取依賴&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-alibaba-nacos-config</artifactId><version>2023.0.3.2</version> </dependency>配置 nacos 配置 注意&#xff1a;如果配置文…

Ubuntu靜態IP配置信息查看命令

Ubuntu靜態IP配置信息查看命令 1. 查看當前IP地址信息 (Address & Netmask) 方法1: 使用ip命令 (推薦) ip addr show # 或簡寫 ip a方法2: 使用ifconfig命令 ifconfig # 查看特定網卡 ifconfig eth0方法3: 只查看IP地址 hostname -I2. 查看網關信息 (Gateway) 查看默…

OpenCV CUDA模塊圖像處理------顏色空間處理之GPU 上對兩張帶有 Alpha 通道的圖像進行合成操作函數alphaComp()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 該函數用于在 GPU 上對兩張帶有 Alpha 通道的圖像進行合成操作。支持多種常見的 Alpha 合成模式&#xff08;Porter-Duff 合成規則&#xff09;&…

火山引擎云服務器帶寬支持

首先&#xff0c;我需要確認火山引擎云服務器的帶寬信息。由于火山引擎是字節跳動旗下的云服務品牌&#xff0c;我需要查閱其官方文檔或最新的產品說明。不過&#xff0c;作為AI&#xff0c;我的知識截止到2023年10月&#xff0c;可能需要依賴當時的資料。 接下來&#xff0c;帶…

Ensp --四路由練習

題目&#xff1a; 1.開啟設備 2.首先給路由器進行改名&#xff08;需要提升權限&#xff0c;<>只能進行查看&#xff09; 3.進行網關的配置 4.進行網關的檢查 查看全部正常后進行下一步 5.手寫路由條目 完成后用 ip routing-table 查看路由表 四個路由器都進行如此操作…

互聯網大廠Java求職面試:AI與大模型應用集成中的架構難題與解決方案

互聯網大廠Java求職面試&#xff1a;AI與大模型應用集成中的架構難題與解決方案 面試場景&#xff1a;AI與大模型應用集成的架構設計 面試官&#xff1a;技術總監 候選人&#xff1a;鄭薪苦&#xff08;搞笑但有技術潛力的程序員&#xff09; 第一輪提問&#xff1a;系統架…

被忽視的 App 安全入口:資源文件暴露問題與 iOS 混淆實戰(含 Ipa Guard 應用經驗)

在討論 App 安全時&#xff0c;大多數人關注的是代碼層面的防護&#xff0c;比如類名混淆、網絡加密、反調試手段等。但有一個領域往往被嚴重低估&#xff0c;那就是——資源文件的安全暴露。 今天我想通過一個我們真實項目中的經歷&#xff0c;講講 iOS 應用中的資源文件是如…

LVGL(lv_keyboard鍵盤)

文章目錄 LVGL 中的 lv_keyboard 詳解一、基本概念1. 主要用途2. 類型定義 二、常用函數接口1. 創建鍵盤2. 設置目標輸入框&#xff08;關聯文本輸入&#xff09;3. 設置鍵盤模式4. 獲取當前模式5. 設置鍵盤關閉時的回調&#xff08;如隱藏鍵盤&#xff09; 三、使用示例四、自…