openlayers [六] 地图交互 interaction 详解

2024-01-19 14:44

本文主要是介绍openlayers [六] 地图交互 interaction 详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • interaction 是什么
    • interaction 简介
    • interaction defaults- 默认添加的功能
    • 举例
    • 结论

interaction 是什么

地图的交互功能包含很多,如地图双击放大,鼠标滚轮缩放,矢量要素点选,地图上绘制图形等等。只要是涉及到与地图的交互,就会涉及到 intercation 类,它定义了用户与地图进行交互的基本要素和事件。

interaction 简介

在 OpenLayers 6 中,表达交互功能的基类是 interaction,它是一个虚基类,不负责实例化,交互功能都继承该基类, OpenLayers 6 中可实例化的子类及其功能如下:

  • doubleclickzoom ,双击放大交互功能;
  • draganddrop ,以“拖文件到地图中”的交互添加图层;
  • dragbox,拉框,用于划定一个矩形范围,常用于放大地图;
  • dragpan ,拖拽平移地图;
  • dragrotateandzoom,拖拽方式进行缩放和旋转地图;
  • dragrotate ,拖拽方式旋转地图;
  • dragzoom ,拖拽方式缩放地图;
  • draw,绘制地理要素功能;
  • keyboardpan ,键盘方式平移地图;
  • keyboardzoom ,键盘方式缩放地图;
  • select,选择要素功能;
  • modify ,更改要素;
  • mousewheelzoom ,鼠标滚轮缩放功能;
  • pinchrotate,手指旋转地图,针对触摸屏;
  • pinchzoom ,手指进行缩放,针对触摸屏;
  • pointer ,鼠标的用户自定义事件基类;
  • snap,鼠标捕捉,当鼠标距离某个要素一定距离之内,自动吸附到要素。
  • interaction defaults ,规定了默认添加的交互功能;

interaction defaults- 默认添加的功能

该类规定了默认包含在地图中的功能,他们都是继承自 ol.interaction 类。 主要是最为常用的功能,如缩放、平移和旋转地图等,具体功能有如下这些:

  • altShiftDragRotate 是否需要Alt-Shift-拖动旋转 (布尔值:默认为true)
  • doubleClickZoom 是否鼠标或手指双击缩放地图(布尔值:默认为true)
  • keyboard 是否需要键盘交互(布尔值:默认为true)
  • mouseWheelZoom 是否鼠标滚轮缩放地图。布尔值 (默认为true)
  • shiftDragZoom 是否需要Shift拖动缩放(布尔值:默认为true) 。
  • dragPan 是否鼠标或手指拖拽平移地图(布尔值:默认为true)
  • pinchRotate 是否两个手指旋转地图,针对触摸屏(布尔值:默认为true)
  • pinchZoom 是否两个手指旋转地图,针对触摸屏(布尔值:默认为true)
  • zoomDelta 使用键盘或双击缩放时的缩放级别增量。(数)
  • zoomDuration 缩放动画的持续时间(数:以毫秒为单位)
  • onFocusOnly 仅在地图具有焦点时进行交互。这会影响MouseWheelZoom和的DragPan相互作用,并且在没有浏览器焦点的地图需要页面滚动时很有用(布尔值:默认为false)

举例

dragrotateandzoom (shift + 鼠标拖拽进行缩放和旋转地图)

import {defaults as defaultInteractions,DragRotateAndZoom
} from "ol/interaction";map.value = new Map({target: target,layers: tileLayer,view: view,interactions: defaultInteractions().extend([new DragRotateAndZoom()])
});

结论

地图交互功能内容实在是太多了,包括 键盘事件,鼠标事件,拖拽,平移,缩放 等一些基本的交互动作,还有后面会写到的 测距,测面,通过draw 绘制,选择要素 selectmodify ,铺捉吸附的 snap 和鼠标自定义事件 pointer 都构成了openlayers 更加强大的交互功能系统,提升更优的用户体验。

这篇关于openlayers [六] 地图交互 interaction 详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/622757

相关文章

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很