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鷹眼控件默認顯示在地圖左下角,可以通過修改CSS樣式進行調整。

1.1. 創建鷹眼控件目標容器

創建鼠標位置DIV容器,并設置其CSS樣式,鷹眼控件默認CSS類名為ol-overviewmap

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

設置鷹眼控件居于地圖右上角顯示。

#custome-overviewmap{position: absolute;height: 160px;width: 170px;right: 0px;top: 10px;
}
.ol-overviewmap {left:0;bottom: 0;
}

1.2. 創建鷹眼控件

鷹眼控件可以設置自定義樣式類名、目標容器、鷹眼圖層等參數,默認可以不傳參數。若想要將鷹眼控件至于目標容器中,需要傳遞目標容器樣式類名以及放置鷹眼控件的目標容器(DOM對象)。

// 創建鷹眼控件
const overviewMapControl = new ol.control.OverviewMap({// 鷹眼控件自定義CSS類名className: "ol-overviewmap ol-custome-overviewmap",// 加載鷹眼圖層,坐標系需要保持一致,若不設置鷹眼圖層,將采用所有主地圖圖層取代layers: [new ol.layer.Tile({name:"天地圖矢量圖層",source: new ol.source.XYZ({url: 'http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2',wrapX:false})}),new ol.layer.Tile({name: "天地圖矢量注記圖層",source: new ol.source.XYZ({url: 'http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2',wrapX: false})})],// 控件展開標識collapseLabel: 'u00BB',// 控件折疊標識label: 'u00AB',// 設置控件展開collapsed: false,// 若想讓鷹眼控件顯示在地圖HTML(viewport)外面,則需要提供target元素target: document.getElementById('custome-overviewmap'),// 收縮按鈕提示文字tipLabel: "收縮按鈕",// 自定義鷹眼控件視圖,若不提供,則默認使用“EPSG:3857”投影坐標系// view:''
})

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([overviewMapControl])
})// 方式2
map.addControl(overviewMapControl)

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: '微軟雅黑';}html,body{width:100%;height:100%;}#map {position: absolute;width: 100%;height: 100%;}#custome-overviewmap{position: absolute;height: 160px;width: 170px;right: 0px;top: 10px;}.ol-overviewmap {left:0;bottom: 0;}</style>
</head>
<body><div id="map" title="地圖顯示"></div><div class="custome-overviewmap" id="custome-overviewmap"></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 overviewMapControl = new ol.control.OverviewMap({// 鷹眼控件自定義CSS類名// className: "ol-overviewmap ol-custome-overviewmap",// 加載鷹眼圖層,坐標系需要保持一致,若不設置鷹眼圖層,將用所有主地圖圖層取代layers: [new ol.layer.Tile({name:"天地圖矢量圖層",source: new ol.source.XYZ({url: 'http://t0.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2',wrapX:false})}),new ol.layer.Tile({name: "天地圖矢量注記圖層",source: new ol.source.XYZ({url: 'http://t0.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2',wrapX: false})})],// 控件展開標識collapseLabel: 'u00BB',// 控件折疊標識label: 'u00AB',// 設置控件展開collapsed: false,// 若想讓鷹眼控件顯示在地圖HTML(viewport)外面,則提供target元素target: document.getElementById('custome-overviewmap'),// 收縮按鈕提示文字tipLabel: "收縮按鈕",// 自定義鷹眼控件視圖,若不提供,則默認使用“EPSG:3857”投影坐標系// view:''})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([// 加載鼠標控件// overviewMapControl])})map.addControl(overviewMapControl)map.addLayer(TDTImgLayer)map.addLayer(TDTImgCvaLayer)
</script>

?

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

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

?

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

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

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

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

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

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

相關文章

WPF···

設置啟動頁 默認最后一個窗口關閉,程序退出,可以設置 修改窗體的icon圖標 修改項目exe圖標 雙擊項目名會看到代碼 其他 在A窗體點擊按鈕打開B窗體,在B窗體設置WindowStartupLocation=“CenterOwner” 在A窗體的代碼設置 B.Owner = this; B.Show(); B窗體生成在A窗體中間…

github公開項目爬取

import requestsdef search_github_repositories(keyword, tokenNone, languageNone, max_results1000):"""通過 GitHub API 搜索倉庫&#xff0c;支持分頁獲取所有結果&#xff08;最多 1000 條&#xff09;:param keyword: 搜索關鍵詞:param token: GitHub To…

防震基座在半導體晶圓制造設備拋光機詳細應用案例-江蘇泊蘇系統集成有限公司

在半導體制造領域&#xff0c;晶圓拋光作為關鍵工序&#xff0c;對設備穩定性要求近乎苛刻。哪怕極其細微的振動&#xff0c;都可能對晶圓表面質量產生嚴重影響&#xff0c;進而左右芯片制造的成敗。以下為您呈現一個防震基座在半導體晶圓制造設備拋光機上的經典應用案例。 企…

S32K開發環境搭建詳細教程(一、S32K IDE安裝注冊)

一、S32K IDE安裝注冊 1、進入恩智浦官網https://www.nxp.com.cn/&#xff08;需要在官網注冊一個賬號&#xff09; 2、直接搜索 “Standard Software”&#xff0c;找到S32K3 Standard Software&#xff0c;點擊進入 3、下載 (1)Automotive SW - S32K3 - S32 Design Studio…

Spring Cloud Gateway 微服務網關實戰指南

上篇文章簡單介紹了SpringCloud系列OpenFeign的基本用法以及Demo搭建&#xff08;Spring Cloud實戰&#xff1a;OpenFeign遠程調用與服務治理-CSDN博客&#xff09;&#xff0c;今天繼續講解下SpringCloud Gateway實戰指南&#xff01;在分享之前繼續回顧下本次SpringCloud的專…

MSP430G2553 USCI模塊串口通信

1.前言 最近需要利用msp430連接藍牙模塊傳遞數據&#xff0c;于是死磕了一段時間串口&#xff0c;在這里記錄一下 2.msp430串口模塊 msp430的串口模塊可以有USCI模塊提供 在異步模式中&#xff0c; USCI_Ax 模塊通過兩個外部引腳&#xff0c; UCAxRXD 和 UCAxTXD&#xff0…

【產品經理從0到1】用戶端產品設計與用戶畫像

思考 xx新聞的第一個版本應該做哪些事情呢&#xff1f; 用戶端核心功能 用戶端通用頁面設計 思考 回想一下&#xff0c;大家在第一次使用一個新下載的App的時候會看到一些什么樣的頁面?這樣的頁面一般都是展示了一些什么內容? 引導頁 概念 第一次安裝App或者更新App后第…

多場景游戲AI新突破!Divide-Fuse-Conquer如何激發大模型“頓悟時刻“?

多場景游戲AI新突破&#xff01;Divide-Fuse-Conquer如何激發大模型"頓悟時刻"&#xff1f; 大語言模型在強化學習中偶現的"頓悟時刻"引人關注&#xff0c;但多場景游戲中訓練不穩定、泛化能力差等問題亟待解決。Divide-Fuse-Conquer方法&#xff0c;通過…

佰力博科技與您探討壓電材料的原理與壓電效應的應用

壓電材料的原理基于正壓電效應和逆壓電效應&#xff0c;即機械能與電能之間的雙向轉換特性。 壓電材料的原理源于其獨特的晶體結構和電-機械耦合效應&#xff0c;具體可分為以下核心要點&#xff1a; 1. ?正壓電效應與逆壓電效應的定義? ?正壓電效應?&#xff1a;當壓電…

算法備案審核周期

&#xff08;一&#xff09;主體備案審核 主體備案審核周期通常為7-10個工作日&#xff0c;監管部門將對企業提交的資質信息進行嚴格審查&#xff0c;審核重點包括&#xff1a; 營業執照的真實性、有效性及與備案主體的一致性。法人及算法安全責任人身份信息的準確性與有效性…

管理系統的接口文檔

一、接口概述 本接口文檔用于描述圖書管理系統中的一系列 Restful 接口&#xff0c;涵蓋圖書的查詢、添加、更新與刪除操作&#xff0c;以及用戶的登錄注冊等功能&#xff0c;方便客戶端與服務器之間進行數據交互。 二、接口基礎信息 接口地址&#xff1a;https://book-manag…

杰發科技AC7801——PWM獲取固定脈沖個數

測試通道6 在初始化時候打開通道中斷 void PWM1_GenerateFrequency(void) {PWM_CombineChConfig combineChConfig[1]; //組合模式相關結構體PWM_IndependentChConfig independentChConfig[2];//獨立模式相關結構體PWM_ModulationConfigType pwmConfig; //PWM模式相關結構體PWM…

RL電路的響應

學完RC電路的響應&#xff0c;又過了一段時間了&#xff0c;想必很多人都忘了RC電路響應的一些內容。我們這次學習RL電路的響應&#xff0c;以此同時&#xff0c;其實也是帶大家一起回憶一些之前所學的RC電路的響應的一些知識點。所以&#xff0c;這次的學習&#xff0c;其實也…

鴻蒙Flutter實戰:21-混合開發詳解-1-概述

引言 在前面的系列文章中&#xff0c;我們從搭建開發環境開始&#xff0c;講到如何使用、集成第三方插件&#xff0c;如何將現有項目進行鴻蒙化改造&#xff0c;以及上架審核等內容&#xff1b;還以高德地圖的 HarmonyOS SDK 的使用為例&#xff0c; 講解了如何將高德地圖集成…

Vmware ubuntu22.04 虛擬機 連接Windows主機虛擬串口

1. Windows虛擬串口配置 虛擬串口下載&#xff1a;教程網址 虛擬串口使用&#xff1a;教程網址 2. Ubuntu 虛擬串口配置 Vmware ubuntu22.04 虛擬機 連接windows主機虛擬串口_vmware中ttys0連接的是哪個端口-CSDN博客 注意&#xff1a;虛擬添加串口的時候&#xff0c;一直…

編譯rk3568的buildroot不起作用

一、環境&#xff1a; 使用kickpi k1開發板&#xff0c;芯片為rk3568。 vmware ubuntu22.04 kickpi給的sdk包&#xff0c;應該不同友商是通用的。 使用的根文件為buildroot 二、問題&#xff1a; 由于 1、wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 …

【動態規劃】簡單多狀態(二)

&#x1f4dd;前言說明&#xff1a; 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄&#xff0c;按專題劃分每題主要記錄&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代碼&#xff1b;&#xff08;2&#xff09;優質解法 優質代碼&#xff1b;&#xff…

如何選擇支持AI接入的開發語言與框架

選擇支持AI接入的開發語言與框架 在AI系統開發中,語言和框架的選擇不僅決定了代碼實現方式,更深刻影響模型服務的接入效率、調用方式、性能表現和未來的可維護性。相比傳統后端系統的語言選擇只需關注并發性能或生態成熟度,AI架構下的開發語言必須同時滿足以下幾類能力: 具…

計算機視覺與深度學習 | Python實現CEEMDAN-ABC-VMD-DBO-CNN-LSTM時間序列預測(完整源碼和數據)

以下是一個結合CEEMDAN、ABC優化VMD、DBO優化CNN-LSTM的完整時間序列預測實現方案。該方案包含完整的數據生成、算法實現和模型構建代碼。 完整實現代碼 import numpy as np import pandas as pd from PyEMD import CEEMDAN from vmdpy import VMD from sklearn.preprocessing…

React19源碼系列之渲染階段performUnitOfWork

在 React 內部實現中&#xff0c;將 render 函數分為兩個階段&#xff1a; 渲染階段提交階段 其中渲染階段可以分為 beginWork 和 completeWork 兩個階段&#xff0c;而提交階段對應著 commitWork。 在之前的root.render過程中&#xff0c;渲染過程無論是并發模式執行還是同…