广告
返回顶部
首页 > 资讯 > 精选 >Vue+Openlayer如何实现图形的拖动和旋转变形效果
  • 491
分享到

Vue+Openlayer如何实现图形的拖动和旋转变形效果

2023-06-21 20:06:07 491人浏览 八月长安
摘要

这篇文章主要介绍Vue+Openlayer如何实现图形的拖动和旋转变形效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现效果旋转、拖动图1、实现效果图2、旋转效果图3、左右移动效果 实现步骤vue中引入

这篇文章主要介绍Vue+Openlayer如何实现图形的拖动和旋转变形效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

实现效果

旋转、拖动

Vue+Openlayer如何实现图形的拖动和旋转变形效果

图1、实现效果

Vue+Openlayer如何实现图形的拖动和旋转变形效果

图2、旋转效果

Vue+Openlayer如何实现图形的拖动和旋转变形效果

图3、左右移动效果

 实现步骤

vue中引入openlayers

npm i ol --save

附:npm下载指定版本命令,需要可以拿去

npm install --save-dev ol@6.9.0

vue中引入 openlayers的扩展包   ol-ext

npm install ol-ext --save

附:npm下载指定版本命令,需要可以拿去

npm install --save ol-ext@3.2.16

创建地图容器

<template>  <div id="map" class="map"></div></template>

js中引入具体配置,根据你的具体改,我这里放的是我自己的

ol有关:

import "ol/ol.CSS";import View from "ol/View";import Map from "ol/Map";import TileLayer from "ol/layer/Tile";import Overlay from "ol/Overlay";import XYZ from "ol/source/XYZ";import { Vector as SourceVec ,Cluster,Vector as VectorSource } from "ol/source";import { Feature } from "ol";import { Vector as LayerVec , Vector as VectorLayer } from "ol/layer";import { Point, LineString, PolyGon } from "ol/geom"; import {    Style,    Icon,    Fill,    Stroke,    Text,    Circle as CircleStyle,  } from "ol/style";  import { OSM, TileArcGISRest } from "ol/source";

ol-ext有关:

import ExtTransfORM from 'ol-ext/interaction/Transform'

实现地图方法:

data() {      return {        map: null,        center: [116.39702518856394, 39.918590567855425], //北京故宫的经纬度        centerSize: 11.5,        projection: "EPSG:4326",     }}
mounted() {  this.initMap()}
methods: {      //初始化地图      initMap() {        //渲染地图        var layers = [          //深蓝色背景          // new TileLayer({          //   source: new XYZ({          //     url:          //       "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",          //   }),          // }),          //初始化背景          // new TileLayer({          //   source: new OSM(),          // })          new TileLayer({            title: "街道图",            source: new XYZ({              url: "Http://localhost:8888/haoxing-map/sosomaps/roadmap/{z}/{x}/{y}.jpg",//zwh本地使用            }),          }),        ];         this.map = new Map({          layers: layers,          target: "map",          view: new View({            center: this.center,            projection: this.projection,            zoom: this.centerSize,            maxZoom: 17,            minZoom: 8,          }),        });      },

地图上加上多边形数据

mounted() { this.initMap() this.createPolygon()},
 methods: {         //创建多边形    createPolygon() {        //添加图层,并设置点范围        const polygon = new Feature({          geometry: new Polygon([            [              [116.39314093500519,40.0217660530101],              [116.47762344990831,39.921746523871924],              [116.33244947314951,39.89892653421418],              [116.30623076162784,40.00185925352143],            ]          ]),        })        //设置样式        polygon.setStyle(new Style({          stroke: new Stroke({            width: 4,            color: [255, 0, 0, 1],          }),        }))        //将图形加到地图上        this.map.addLayer(new VectorLayer({          source: new VectorSource({            features: [polygon],          }),        }))      }, }

地图上添加具体的操作方法和效果 

mounted() {  this.initMap()  this.createPolygon()  this.onEdit()},
//操作事件onEdit() {   const transform = new ExtTransform({       enableRotatedTransform: false,       hitTolerance: 2,       translate: true, // 拖拽       stretch: false, // 拉伸       scale: true, // 缩放       rotate: true, // 旋转       translateFeature: false,       noFlip: true,       // layers: [],    })   this.map.addInteraction(transform)    //开始事件        transform.on(['rotatestart','translatestart'], function(e){          // Rotation          let startangle = e.feature.get('angle')||0;          // Translation          console.log(1111);          console.log(startangle);        });  //旋转        transform.on('rotating', function (e){          console.log(2222);          console.log("rotate: "+((e.angle*180/Math.PI -180)%360+180).toFixed(2));          console.log(e);        }); //移动        transform.on('translating', function (e){          console.log(3333);          console.log(e.delta);          console.log(e);         }); //拖拽事件        transform.on('scaling', function (e){          console.log(4444);          console.log(e.scale);          console.log(e);        });  //事件结束        transform.on(['rotateend', 'translateend', 'scaleend'], function (e) {          console.log(5555);        }); },

以上是“Vue+Openlayer如何实现图形的拖动和旋转变形效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Vue+Openlayer如何实现图形的拖动和旋转变形效果

本文链接: https://www.lsjlt.com/news/300659.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue+Openlayer实现图形的拖动和旋转变形效果
    目录前言相关资料实现效果 实现步骤前言 openlayer 是有他自己的扩展插件 ol-ext,我们这里用他来实现图形的操作:拖拽、旋转、缩放、拉伸、移动等等功能,以及他的监听事件,...
    99+
    2022-11-12
  • Vue+Openlayer如何实现图形的拖动和旋转变形效果
    这篇文章主要介绍Vue+Openlayer如何实现图形的拖动和旋转变形效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现效果旋转、拖动图1、实现效果图2、旋转效果图3、左右移动效果 实现步骤vue中引入...
    99+
    2023-06-21
  • CSS变形:如何实现元素的旋转效果
    CSS变形:如何实现元素的旋转效果,需要具体代码示例在网页设计中,动画效果是提高用户体验和吸引用户注意力的重要方式之一,而旋转动画是其中比较经典的一种。在CSS中,使用“transform”属性可以实现元素的各种变形效果,包括旋转。本文将详...
    99+
    2023-11-21
    CSS旋转 元素 变形
  • vue如何实现3D环形图效果
    这篇文章主要介绍“vue如何实现3D环形图效果”,在日常操作中,相信很多人在vue如何实现3D环形图效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何实现3D环形图效果”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • css3如何实现圆形转动的效果
    这篇文章主要介绍“css3如何实现圆形转动的效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css3如何实现圆形转动的效果”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • Vue Echarts实现带滚动效果的柱形图
    本文实例为大家分享了Vue Echarts实现带滚动效果柱形图的具体代码,供大家参考,具体内容如下 代码 <template>   <div class="time...
    99+
    2022-11-13
  • css3代码如何实现图形3d翻转效果
    这篇“css3代码如何实现图形3d翻转效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css3代码如何实现图形3d翻转效果...
    99+
    2023-07-04
  • Android如何实现自定义View圆形和拖动圆、跟随手指拖动效果
    小编给大家分享一下Android如何实现自定义View圆形和拖动圆、跟随手指拖动效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!单纯的自定义一个圆非常简单 只需要几步就完成 拖动圆添加实现触摸事件即可我在第一次自定义Vi...
    99+
    2023-05-30
    android view
  • CSS3 如何实现图形下落动画效果
    这篇文章主要讲解了“CSS3 如何实现图形下落动画效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS3 如何实现图形下落动画效果”吧!先看效果实现代码<div clas...
    99+
    2023-06-08
  • CSS绘制:如何实现简单的渐变图形效果
    CSS绘制:实现简单的渐变图形效果在网页设计中,渐变图形效果是一种常见的视觉元素,可以为网站增添吸引人的外观和体验。在CSS中,我们可以利用渐变效果轻松地实现各种图形的渐变效果,包括矩形、圆形、文字等。本文将介绍如何使用CSS来实现简单的渐...
    99+
    2023-11-21
    图形 绘制 CSS渐变
  • Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转
    Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。 下面就讲一下Tweene Anima...
    99+
    2022-06-06
    图形图像 android开发 animation 动画 Android
  • CSS绘制:如何实现简单的动态图形效果
    CSS绘制:如何实现简单的动态图形效果引言:在前端开发中,我们常常需要对网页进行一些动态的图形效果进行美化和交互增强。而CSS绘制是一种简单而强大的方式,可以实现各种各样的动态图形效果。本文将介绍一些常见的简单动态图形效果,并给出具体的代码...
    99+
    2023-11-21
    CSS动画:利用CSS实现动态效果
  • 如何使用CSS实现图片的旋转效果
    如何使用CSS实现图片的旋转效果CSS(Cascading Style Sheets)是一种用于设置网页样式和布局的标记语言。通过CSS,我们可以实现许多吸引人的网页效果,其中包括图片的旋转效果。在本文中,我们将讨论如何使用CSS来实现图片...
    99+
    2023-11-21
    CSS 图片 旋转
  • 如何利用纯CSS实现旋转React图标的动画效果
    如何利用纯CSS实现旋转React图标的动画效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。几天前,小编在 codepen 看到一个剑气...
    99+
    2022-10-19
  • CSS绘制:如何实现简单的图形效果
    CSS绘制:如何实现简单的图形效果CSS作为前端开发的重要技术之一,除了样式布局外,还可以利用它绘制简单的图形效果。本文将介绍如何使用CSS来实现一些常见的图形效果,并提供具体的代码示例。一、实现圆形要实现一个简单的圆形效果,可以使用CSS...
    99+
    2023-11-21
    简单 CSS绘制 图形效果
  • 如何使用CSS实现元素的旋转背景图动画效果
    如何使用CSS实现元素的旋转背景图动画效果背景图动画效果可以增加网页的视觉吸引力和用户体验。本文将介绍如何使用CSS实现元素的旋转背景图动画效果,并提供具体的代码示例。首先,我们需要准备一张背景图,可以是任何你喜欢的图片,例如一张太阳或者电...
    99+
    2023-11-21
    animation transform background
  • CSS绘制:如何实现简单的3D图形效果
    CSS绘制:如何实现简单的3D图形效果在现代网页设计中,要给页面增加一些动态和立体感,常常需要用到3D图形效果。虽然在过去,实现3D效果可能需要使用JavaScript或者专业的3D引擎,但是现在CSS已经足够强大,可以实现一些简单的3D图...
    99+
    2023-11-21
    简单 图形效果 CSSD
  • CSS3如何实现同时执行倾斜和旋转的动画效果
    这篇文章主要介绍了CSS3如何实现同时执行倾斜和旋转的动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先看看静态的效果,运行后的效果更...
    99+
    2022-10-19
  • CSS如何实现动态渐变色边框围绕内容区域旋转的效果
    这篇文章将为大家详细讲解有关CSS如何实现动态渐变色边框围绕内容区域旋转的效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图&emsp;&emsp;...
    99+
    2022-10-19
  • 如何通过纯CSS实现图片的旋转平移效果的方法和技巧
    在现代web设计中,动画效果已经成为了吸引用户注意力和提升用户体验的重要组成部分。而图片的旋转平移效果是其中一个较为常见的动画效果。在本文中,我将介绍如何通过纯CSS来实现这个效果,并提供具体的代码示例。让我们一起来学习吧!首先,我们需要一...
    99+
    2023-10-21
    图片 纯CSS 旋转平移
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作