openLayers--绘制多边形、获取视图的中心点、获取当前地图等级、设置地图等级

openLayers绘制多边形、获取视图中心点

前言

上一篇文章在vue项目中绘制了openlayers绘制了地图和标记点,本篇文章讲解openlayers绘制多边形

通过LineString来进行绘制、获取视图的中心位置、获取当前地图等级、设置地图等级
openLayers演示网址

效果图



1、导入LineString

import { Point, LineString } from "ol/geom";

2、创建添加多边形

java 复制代码
// 添加多边形
    addExtent (extent) {
      if (this.vectorSource) {
        // this.vectorSource.clear()
      } else {
        //矢量标注的数据源
        this.vectorSource = new VectorSource({
          features: []
        })
        // //矢量标注图层
        this.vectorLayer = new VectorLayer({
          source: this.vectorSource
        });
        this.map.addLayer(this.vectorLayer);
      }

      // // 创建要素,设置其样式
      var newPolygon = new Feature({
        geometry: new LineString([
        [110.3014, 14.82],
        [112.79, 14.82],
        [114.6636, 18.2977],
        [111.687, 18.897],
        [110.3014, 14.82],
      ])
      });

      newPolygon.setStyle(this.createfeature(newPolygon));
      this.vectorSource.addFeature(newPolygon);
    },

3、定义多变形样式

java 复制代码
// 定义多边形
    createfeature () {
      return new Style({
        fill: new Fill({
          color: 'rgba(1, 210, 241, 0.2)'
        }),
        stroke: new Stroke({
          color: 'rgba(255, 0, 0)',
          width: 4,
        }),
      })
    },

4、获取当前视图的中心点

javascript 复制代码
	// 获取范围
    getExtent () {
      const size = this.map.getSize();
      const extent = this.map.getView().calculateExtent(size);
      return extent
    },

    // 获取地图视野中心点
    getCenter () {
      const center = getCenter(this.getExtent())
      this.addVectorLabel(center)
    },

5、获取当前视图等级

javascript 复制代码
// 获取当前的视图等级
    getZoom(){
       alert(this.map.getView().getZoom());
    }

6、设置地图等级

javascript 复制代码
	// 设置当前缩放等级
    setZoom(){
      this.map.getView().setZoom(10);
    }
相关推荐
逐·風2 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫3 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦4 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
_oP_i4 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl
GIS程序媛—椰子4 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山4 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享5 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
程序媛小果5 小时前
基于java+SpringBoot+Vue的旅游管理系统设计与实现
java·vue.js·spring boot
从兄5 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
凉辰6 小时前
设计模式 策略模式 场景Vue (技术提升)
vue.js·设计模式·策略模式