注:当前使用的是 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;渲染过程无论是并发模式执行还是同…