当前位置: 首页 > news >正文

三十、openlayers官网示例解析Double click, Drag and Zoom——第二次点击鼠标拖拽缩放地图效果、取消地图双击放大事件

 这篇展示了如何在地图上添加第二次按下鼠标移动鼠标实现拖拽缩放地图效果。

官网demo地址:

Double click, Drag and Zoom

官网介绍文字的翻译如下:

示例比较简单,直接贴代码:

 const map = new Map({//添加第二次点击拖拽缩放地图interactions: defaultInteractions().extend([new DblClickDragZoom()]),layers: [new Tile({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",}),}),],target: "map",view: new View({center: [0, 0],zoom: 2,}),});

interactions属性用来设置地图上的交互,DblClickDragZoom就是第二次按下鼠标拖拽缩放的类。 

 鼠标双击放大事件是openlayers自带的,如果要取消,需要这样写:

  // 禁用双击放大interactions: defaultInteractions({doubleClickZoom: false, }),

完整代码:


<template><div class="box"><h1>Double click, Drag and Zoom</h1><div id="map"></div></div>
</template><script>
import Map from "ol/Map.js";
import OSM from "ol/source/OSM.js";
import View from "ol/View.js";
import Tile from "ol/layer/Tile";
import XYZ from "ol/source/XYZ";
import {DblClickDragZoom,defaults as defaultInteractions,
} from "ol/interaction.js";
export default {data() {return {map: null,};},methods: {initMap() {const map = new Map({//添加第二次点击拖拽缩放地图interactions: defaultInteractions().extend([new DblClickDragZoom()]),// 禁用双击放大// interactions: defaultInteractions({//   doubleClickZoom: false, // }),layers: [new Tile({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",}),}),],target: "map",view: new View({center: [0, 0],zoom: 2,}),});},},mounted() {this.initMap();},
};
</script>
<style scoped>
#map {width: 100%;height: 500px;
}
.box {height: 100%;
}
</style>

相关文章:

  • Java中的super关键字详解
  • 探秘AI艺术:揭开Midjourney绘画的神秘面纱
  • excel表格里怎样不删除0,又不显示0呢?
  • 重学java51.Collections集合工具类、泛型
  • 电商推荐系统+电影推荐系统【虚拟机镜像分享】
  • java面试中高频问题----1
  • 妙味web前端开发全套视频教程:深度解析与精彩呈现
  • kubernetes-PV与PVC
  • 【axios】的浅度分析
  • 【CSS】计算属性 calc 函数
  • leetcode-设计LRU缓存结构-112
  • Matlab|基于PMU相量测量单元进行电力系统电压幅值和相角状态估计
  • 2024最新 Jenkins + Docker实战教程(七)- Jenkins实现远程传输和自动部署
  • MS Excel: 高亮当前行列 - 保持原有格式不被改变
  • 代码随想录-算法训练营day47【动态规划09:打家劫舍、打家劫舍II、打家劫舍III】
  • Docker容器管理
  • Java方法详解
  • JS函数式编程 数组部分风格 ES6版
  • LintCode 31. partitionArray 数组划分
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PHP 的 SAPI 是个什么东西
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Wamp集成环境 添加PHP的新版本
  • 编写高质量JavaScript代码之并发
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 记录一下第一次使用npm
  • 解决iview多表头动态更改列元素发生的错误
  • 突破自己的技术思维
  • 网络应用优化——时延与带宽
  • 用Canvas画一棵二叉树
  • scrapy中间件源码分析及常用中间件大全
  • ​人工智能书单(数学基础篇)
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # 数据结构
  • # 数论-逆元
  • #14vue3生成表单并跳转到外部地址的方式
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (安卓)跳转应用市场APP详情页的方式
  • (二)linux使用docker容器运行mysql
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (三)终结任务
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET 中让 Task 支持带超时的异步等待
  • .Net语言中的StringBuilder:入门到精通
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @Autowired多个相同类型bean装配问题