let
mousezoom
;
map
.
getInteractions
(
)
.
forEach
(
function
(
element
)
{
if
(
element
instanceof
DragPan
)
pan
=
element
;
if
(
element
instanceof
MouseWheelZoom
)
mousezoom
=
element
;
if
(
pan
)
{
pan
.
setActive
(
true
)
;
if
(
mousezoom
)
{
mousezoom
.
setActive
(
true
)
;
}
)
;
包含业务开关的代码
function lock(lockval) {
let pan;
let mousezoom;
map.getInteractions().forEach(function (element) {
if (element instanceof DragPan)
pan = element;
if(element instanceof MouseWheelZoom)
mousezoom = element;
if (pan) {
if (lockval) {
pan.setActive(true);
isLock.value = !isLock.value;
else {
pan.setActive(false);
isLock.value = !isLock.value;
if (mousezoom) {
if (lockval) {
mousezoom.setActive(true);
else {
mousezoom.setActive(false);
});
注:这个图是别的大佬整理的 https://www.ktanx.com/blog/p/2656
本课程选取了OpenLayers一些具有典型代表性的实例进行详解。讲解实例过程中对涉及到的相关知识点进行穿插分析介绍,适合初学者对OpenLayers形成整体认识、树立学习信心。课程涉及到map、view、projection、layer、source、feature、style、overlay、control等组件的实例分析。
shiftDragZoom: false, // 取消shift+wheel左键拖动交互。mouseWheelZoom: false, // 取消滚动鼠标中间的滑轮交互。doubleClickZoom: false, // 禁用双击缩放。pinchZoom: false, // 禁止手指缩放地图。dragPan: false, // 禁止拖拽。openlayers阻止默认行为。
let pan = null
this.map.getInteractions().forEach(element => {
if (element instanceof DragPan) {
pan...
现在做webgis基本都会用到openlayers或者leaflet。那么在显示地图的时候,特别是显示小区域地图的时候,由于地图区域较小,就会存在把地图拖动到显示区域之外的现象。那么该如何限制地图拖动的区域呢。
在openlayers2中有restrictedExtent属性,直接设置下即可。
[javascript] view plain copy
本示例的目的是介绍演示如何在openlayers中使添加使用全屏控件,呈现全屏和还原的效果。直接复制 vue+openlayers源代码,操作2分钟即可运行实现效果