openlayers [八] 地图覆盖物overlay详解

这篇具有很好参考价值的文章主要介绍了openlayers [八] 地图覆盖物overlay详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

overlay 简述

overlay是覆盖物的意思 这里很多同学会跟图层layers搞混淆,主要是放置一些和地图位置相关的元素,常见的地图覆盖物为这三种类型,如:popup 弹窗、label标注信息、text文本信息等,而这些覆盖物都是和html中的element等价的,通过overlay的属性element和html元素绑定同时设定坐标参数——达到将html元素放到地图上的位置,在平移缩放的时候html元素也会随着地图的移动而移动。

overlay 属性

overlay初始化时可以接受很多的配置参数,这些配置参数是一个个的键值对,共同构成一个对象字面量(options),
然后传递给其“构造函数”,如new ol.Overlay(options),此处的 options 便是参数键值对构成的对象字面量。
可配置的键值对,定义如下:(红色为常用属性)

  • id,为对应的 overlay 设置一个 id,便于使用 ol.Map 的 getOverlayById 方法取得相应的 overlay;
  • element,overlay 包含的 DOM element;
  • offset,偏移量,像素为单位,overlay 相对于放置位置(position)的偏移量,默认值是 [0, 0],正值分别向右和向下偏移;
  • position,在地图所在的坐标系框架下,overlay 放置的位置;
  • positioning,overlay 对于 position 的相对位置,可能的值包括 bottom-left、bottom-center、bottom-right 、center-left、center-center、center-right、top-left、top-center、top-right,默认是 top-left,也就是 element 左上角与 position 重合;
  • stopEvent,地图的事件传播是否停止,默认是 true,即阻止传播,可能不太好理解,举个例子,当鼠标滚轮在地图上滚动时,会触发地图缩放事件,如果在 overlay 之上滚动滚轮,并不会触发缩放事件,如果想鼠标在 overlay 之上也支持缩放,那么将该属性设置为 false 即可;
  • insertFirst,overlay 是否应该先添加到其所在的容器(container),当 stopEvent 设置为 true 时,overlay 和 openlayers 的控件(controls)是放于一个容器的,此时将 insertFirst 设置为 true ,overlay 会首先添加到容器,这样,overlay 默认在控件的下一层(CSS z-index),所以,当 stopEvent 和insertFirst 都采用默认值时,overlay 默认在 控件的下一层
  • autoPan,当触发 overlay setPosition 方法时触发,当 overlay 超出地图边界时,地图自动移动,以保证 overlay 全部可见;
  • autoPanAnimation,设置 autoPan 的效果动画,参数类型是 olx.animation.panOptions
  • autoPanMargin,地图自动平移时,地图边缘与 overlay 的留白(空隙),单位是像素,默认是 20像素;

overlay 事件

支持的事件主要是继承 ol.Object 而来的 change 事件,当 overlay 相关属性或对象变化时触发:
  • change,当引用计数器增加时,触发;
  • change:element,overlay 对应的 element 变化时触发;
  • change:map,overlay 对应的 map 变化时触发;
  • change:offset,overlay 对应的 offset 变化时触发;
  • change:position,overlay 对应的 position 变化时触发;
  • change:positioning,overlay 对应的 positioning 变化时触发;
  • propertychange,overlay 对应的属性变化时触发;

使用方法文章来源地址https://www.toymoban.com/news/detail-805018.html

var overlay = new ol.Overlay({
    // 创建 overlay ...省略
});
// 事件
overlay.on("change:position", function(){
    console.log("位置改变!");
})

overlay 方法

支持的方法这里我们只介绍 overlay 特有的方法,就不介绍其继承而来的方法了,主要是针对 overlay 的属性及其相关联对象的 getset方法。

 - getElement,取得包含 overlay 的 DOM 元素;
 - getId,取得 overlay 的 id;
 - getMap,获取与 overlay 关联的 map对象;
 - getOffset,获取 offset 属性;
 - getPosition,获取 position 属性;
 - getPositioning,获取 positioning 属性;
 - setElement;设置 overlay 的 element;
 - setMap,设置与 overlay 的 map 对象;
 - setOffset,设置 offset;
 - setPosition,设置 position 属性;
 - setPositioning,设置 positioning 属性。

到了这里,关于openlayers [八] 地图覆盖物overlay详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenLayers入门,OpenLayers实现地图原地旋转动画效果

    专栏目录: OpenLayers入门教程汇总目录 OpenLayers实现地图原地旋转动画效果,顾名思义,就是站在原地转一圈。 使用npm安装依赖 使用Yarn安装依赖 vue项目使用请参考这篇文章:

    2024年02月13日
    浏览(41)
  • 【OpenLayers】VUE+OpenLayers+ElementUI加载WMS地图服务

    需要安装好nodejs,nodejs下载地址,下载对应的版本向导式安装即可。 安装完成后,控制台输入node -v,显示版本号即安装成功。 下载完成后,默认将缓存路径和下载路径设置的C盘,可以使用如下命令修改: 设置之后需要将上面两个地址添加到环境变量中。 安装完成之后控制

    2023年04月09日
    浏览(31)
  • [Webgis][地图加载]OpenLayer加载多种形式地图

    描述在前 书接上回,作为打工人,学习还是要以项目为导向。由于领导想看卫星地图显示,这次我们记录下,如何使用OpenLayer 加载显示常见的几种二维地图,包括普通地图,卫星地图,和卫星路网混合地图。还是以高德地图为例,下面我们直接上代码,从实例入手学习。 代

    2024年02月01日
    浏览(31)
  • openLayers基础地图操作

    和高德地图,百度地图,腾讯地图,Arcgis一样,OpenLayers是一个用于开发WebGIS客户端的JavaScript包。 它有自带的api在线说明官方文档: https://openlayers.org/ 。也有中文api网站: http://linwei.xyz/ol3-primer/ch01/index.html 。 openLayers依赖包npm安装: npm install ol --save openLayers依赖包yarn安装:

    2024年02月05日
    浏览(40)
  • openlayers 地图组件封装

    2024年02月07日
    浏览(33)
  • openlayers实现锁定地图,不可使用鼠标拖动放大缩小地图

    开启地图锁定功能,不再允许使用鼠标拖拽查看地图,使用鼠标滚轮放大缩小查看地图 关键代码 包含业务开关的代码 注:这个图是别的大佬整理的 https://www.ktanx.com/blog/p/2656

    2024年02月02日
    浏览(39)
  • openlayers学习(一)仿3D效果地图

    最近看到一些3D的地图,觉得很炫酷,实现按道理来说应该是用3D类的地图来实现,刚好在学习一些openlayers的内容,所以也尝试一下,但最终效果也仅局限于单个polygon下。 其他实现方式应该还是使用cesium或者mapbox或者echarts会方便很多。 学了一趟openlayers后,发现并没有那种可

    2023年04月26日
    浏览(26)
  • vue+openlayers,初始化openlayers地图,实现鼠标移入、点击、右键等事件

    主要功能:初始化openlayers地图,实现鼠标移入、点击、右键等事件,以及获取当前图标的feature,将当前图标信息以弹框方式进行展示;地图上展示拾取到的经纬度 前端使用的是vue技术栈 步骤一:将地图的公用配置项单独提出成一个js文件,方便打包后进行修改,代码如下

    2024年02月11日
    浏览(27)
  • OpenLayers实战,OpenLayers结合下拉菜单实现城市切换,动态切换城市边界到地图视图视角范围内

    专栏目录: OpenLayers实战进阶专栏目录 本章是OpenLayers综合实战案例,使用OpenLayers结合下拉菜单实现城市切换,动态切换城市边界到地图视图视角范围内。 本章需要使用到ElementUI的下拉框组件和OpenLayers的TopoJson格式解析地市边界数据并负责渲染,通过动态创建style样式来切换

    2024年02月06日
    浏览(41)
  • Vue+OpenLayers6从入门到实战进阶案例汇总目录,Vue+OpenLayers6地图整合教程,OpenLayers6中文文档,OpenLayers6中文手册

    本篇作为《Vue+OpenLayers6入门教程》和《Vue+OpenLayers6实战进阶案例》所有文章的二合一汇总目录,方便查找。 本专栏源码是由OpenLayers6.15.1版本结合Vue2框架编写,同时支持Vue3,零星几篇文章用到了Element-UI库。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程

    2024年04月23日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包