【OpenLayers】VUE+OpenLayers+ElementUI加载WMS地图服务

news2025/1/12 19:07:53

【OpenLayers】VUE+OpenLayers+ElementUI加载WMS地图服务

  • 准备工作
  • 安装vue
  • 创建vue项目
  • 安装OpenLayers
  • 安装ElementUI
  • 加载wms地图服务

准备工作

需要安装好nodejs,nodejs下载地址,下载对应的版本向导式安装即可。
nodejs下载
安装完成后,控制台输入node -v,显示版本号即安装成功。
下载完成后,默认将缓存路径和下载路径设置的C盘,可以使用如下命令修改:

npm config set prefix "下载默认路径"
npm config set cache “缓存路径”

设置之后需要将上面两个地址添加到环境变量中。

安装vue

# - g为全局安装,将安装到node_global目录下,否则只会安装到当前目录
npm install vue -g

安装完成之后控制台输入vue -V,显示版本号则安装成功。

安装后遇到的问题:
执行vue时报错:

vue : 无法加载文件…/vue.ps1,因为在此系统上禁止运行脚本,有关详细信息,…

解决方案:控制台输入以下命令
(1)查看当前的执行策略

Get-ExecutionPolicy

(2)修改执行策略为RemoteSigned

Set-ExecutionPolicy -Scope CurrentUse

修改执行策略

创建vue项目

控制台进入到要创建vue项目的目录下,执行如下命令:

vue create ***(项目名,字母只能小写)

接着选择vue项目的配置,我这里选择的是vue3,其他的配置如下图:
vue项目配置
启动vue项目:进入项目的目录下,执行npm run serve 启动。访问http://localhost:8080/ 显示vue界面即启动成功。
修改vue项目的端口可以通过项目根目录下package.json文件修改serve:“serve”: “vue-cli-service serve --port 8002”
修改vue项目端口

安装OpenLayers

在项目根目录下执行

npm install ol

安装ElementUI

由于选择的是vue3项目,所以需要配合使用element plus,在项目根目录下执行

npm install element-plus --save

加载wms地图服务

在配置好以上环境后,下面就可以正式实现加载wms地图服务的功能。
在src/components目录下新建map.vue文件,实现地图的显示:

<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <div
    id="mapDiv"
    style="width: 800px; height: 600px; border: 1px solid #ff0000"
  ></div>
</template>

<script>
import "ol/ol.css";
import Map from "ol/Map";
import View from "ol/View";
import ImageWMS from "ol/source/ImageWMS";
import Image from "ol/layer/Image";

export default {
  data() {
    return {
      map: null, //地图
    };
  },
  mounted() {
    this.initMap();
  },
  created() {},
  methods: {
    initMap() {
      var image = new Image({
        source: new ImageWMS({
          //不能设置为0,否则地图不展示。
          ratio: 1,
          url: "http://127.0.0.1:8080/geoserver/province/wms",
          params: {
            LAYERS: "province:新疆",
            STYLES: "",
            VERSION: "1.1.1",
            FORMAT: "image/png",
          },
          serverType: "geoserver",
        }),
      });
      this.map = new Map({
        //地图容器ID
        target: "mapDiv",
        //引入地图
        layers: [image],
        view: new View({
          center: [84, 42],
          zoom: 22,
        }),
      });
      this.$root._olMap = this.map;
    },
  },
};
</script>

<style scoped>
.map {
  width: 100%;
  height: 800px;
}
</style>

其中,url及相关参数可以从geoserver中获取:
url和参数获取

接下来修改App.vue的内容,这里使用了这个布局:
element ui布局
其他的布局可以直接在element常用布局中直接复制模板进行修改。

<template>
  <div id="app">
    <el-container class="app-out-pannel">
      <el-header class="sys-header">OpenLayers加载WMS地图服务</el-header>
      <el-container class="app-content-pannel">
        <el-aside class="sys-menu" width="200px"></el-aside>
        <el-container>
          <el-main class="app-main">
            <olMap></olMap>
          </el-main>
          <el-footer></el-footer>
        </el-container>
      </el-container>
    </el-container>
  </div>
</template>

<script>
import olMap from "./components/map.vue";

export default {
  name: "App",
  components: {
    olMap,
  },
};
</script>

<style>
#app {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
}
.app-out-pannel,
.app-content-pannel {
  height: 100%;
}
.sys-header {
  background-color: #a7ee91;
  line-height: 60px;
  height: 60px;
  color: #0e0d0d;
  font-size: 600;
}
.sys-menu {
  background-color: #c0fac5;
}
.app-main {
  background-color: #faf9f8;
}
</style>

最后修改main.js,引入相关的包:

import { createApp } from "vue";
import App from "./App.vue";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import zhCn from "element-plus/es/locale/lang/zh-cn";

const app = createApp(App);

app.use(ElementPlus, { locale: zhCn });
app.mount("#app");

最后输入 npm run serve 运行,浏览器中打开如下图:
加载wms服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OAID解密场景和对应策略,淘宝订单解密接口,淘宝订单明文接口

OAID解密场景和对应策略 场景编码 场景名称 返回的隐私字段 1001 顺丰电子面单发货 消费者手机号&#xff0c;姓名&#xff0c;详细地址 1002 4通一达电子面单发货 消费者手机号&#xff0c;姓名&#xff0c;详细地址 1003 EMS电子面单发货 消费者手机号&#xff0c…

Eclipse基本使用、数据类型、运算符

Eclipse基本使用 创建JAVA项目 1.打开新建项目窗口&#xff08;File --> New --> Project&#xff09; 2.在New Project窗口中选择Java Project创建项目 3.在New Java Project对话框 Project name&#xff1a;项目名称 Project Layout项目布局&#xff1a;Create sepa…

初识Node

Node.js是什么 Node.js是一个基于Chrome V8引擎的[JavaScript运行环境]。 Node.js使用了一个事件驱动、非阻塞式I/O 的模型。 Node.js 可以做什么 Nodejs作为一个JavaScript的运行环境&#xff0c;仅仅提供了基础的功能和API。然而&#xff0c;基于Node.js 提供的这些基础能…

【SCI征稿】SPRINGER旗下CCF1区计算机工程类SCI, 网格计算、储层计算、机器学习相关领域均可~

一、期刊简介&#xff1a; 1区计算机工程类SCI&EI (CCF) 【期刊概况】SPRINGER出版社&#xff0c;IF:4.0-5.0, JCR1/2区, 中科院2区&#xff1b; 【终审周期】走期刊部系统&#xff0c;3个月左右录用&#xff1b; 【检索情况】SCI&EI双检&#xff1b; 【数据库收录…

Revit墙问题:系统自带幕墙偏移解决和墙翻模操作

一、关于Revit绘制默认幕墙会自动产生偏移问题的解决办法! 很多人在安装完Revit后绘制系统自带的幕墙会产生偏移! 首先我们要了解偏移产生的根源&#xff1a; 1、绘制的时候在偏移量里设置了偏移值! 2、幕墙嵌板族设置了偏移&#xff1a;这种问题一般分种情况&#xff1a; A&am…

Linux编译器 gcc与g++

Linux编译器 gcc/g工具 目录 Linux编译器 gcc/g工具1、程序的诞生2、gcc工具2.1 预处理2.2 编译2.3 汇编2.4 链接2.5 运行2.6 总结 3、静态链接与动态链接3.1 静态链接3.2 动态链接3.3 Linux下库的命名 1、程序的诞生 程序的编译过程&#xff1a; 1、预处理&#xff08;头文件包…

算法导论 | 算法在计算中的作用

第一章 | 算法在计算中的作用 笔记 什么是算法&#xff1f; 算法就是任何良定义的计算过程&#xff0c;该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出不正确的算法只要其错误率可控有时可能是有用的算法的说明的唯一要求是这个说明必须精确描述所要遵循的…

datax 从oracle迁移到es中

任务启动时刻 : 2023-04-20 19:34:56 任务结束时刻 : 2023-04-20 19:56:22 任务总计耗时 : 1285s 任务平均流量 : 5.07MB/s 记录写入速度 : …

离散型制造企业如何选择MES系统

随着MES系统越来越被企业所重视&#xff0c;并并被运用到很多不同行业的制造业中。 MES对于制造企业来说&#xff0c;其所需要的要求是各不相同的&#xff0c;比如离散型制造企业&#xff0c;该如何去选择MES系统呢&#xff1f; 什么是离散型制造企业&#xff1f; 离散型制造企…

nn.init.xavier_uniform_()的作用:根据均匀分布生成Tensor

官网解释如下&#xff1a; Signature: nn.init.xavier_uniform_(tensor: torch.Tensor, gain: float 1.0) -> torch.Tensor Docstring: Fills the input Tensor with values according to the method described in Understanding the difficulty of training deep feedforw…

PHP语言开发的医院不良事件上报系统源码,前后端分离,仓储模式

医院安全&#xff08;不良&#xff09;事件上报系统源码 系统定义&#xff1a; 规范医院安全&#xff08;不良&#xff09;事件的主动报告&#xff0c;增强风险防范意识&#xff0c;及时发现医院不良事件和安全隐患&#xff0c;将获取的医院安全信息进行分析反馈&#xff0c;…

STM32开发(十五)STM32F103 片内资源 —— 通用定时器 PWN 无源蜂鸣器 详解

文章目录 一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解五、结果演示 一、基础知识点 本实验通过STM32F103 的通用定时器 PWN功能&#xff0c;实现对无源蜂鸣器控制。 本实验内容知识点&#xff1a; 1、通用定时器 PWN 详解 2、有源蜂鸣器和无源蜂鸣器…

当我开始学习人工智能:知识表示方法

加油加油&#xff0c;五一前复习玩&#xff0c;五一就可以出去玩啦 一、状态空间法&#xff08;State Space Representation&#xff09; 问题求解技术主要是两个方面 问题的表示求解的方法 状态空间法 状态算符状态空间方法 1.1 问题状态描述 定义 状态&#xff1a;描述某类不…

电感耦合等离子体原子发射光谱法(ICP-AES)

一、定义 电感耦合等离子体原子发射光谱法(ICP-AES)&#xff0c;是以电感耦合等离子矩为激发光源的光谱分析方法&#xff0c;具有准确度高和精密度高、检出限低、测定快速、线性范围宽、可同时测定多种元素等优点&#xff0c;国外已广泛用于环境样品及岩石、矿物、金属等样品中…

SimpleDateFormat模式字符串格式

SimpleDateFormat模式字符串 new SimpleDateFormat(String parm); parm为一个字符串,表示格式. 时间模式 字母 时间元素 表示 示例 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 D 年中的天数 Number 200 d 月份中的天数 Number 31;30;28;29 H 一天中的小时(24小时…

【MySQL】表的基本操作

1、数据类型 1.1 数值类型 数据类型大小说明bit[(M)]M指定位数&#xff0c;默认为1二进制&#xff0c;M范围从1到64&#xff0c;存储数值范围从0到2^M-1tinyint1字节smallint2字节int4字节bigint8字节float(M,D)4字节单精度&#xff0c;M指定长度&#xff0c;D 指定小数位数&am…

Peach Fuzzer漏洞挖掘实战

概述 本文主要介绍模糊测试技术&#xff0c;开源模糊测试框架Peach Fuzzer&#xff0c;最后使用Peach Fuzzer对Modbus Slave软件进行漏洞挖掘&#xff0c;并成功挖掘到0DAY漏洞。&#xff08;文中涉及的漏洞已提交到国家漏洞库&#xff0c;现已修复&#xff09; 模糊测试技术 模…

电影《绿皮书》鉴赏

**《绿皮书》**由彼得法雷尔执导&#xff0c;维戈莫滕森和马萨拉阿里主演&#xff0c;改编自关于保镖托尼的真实故事。20世纪60年代&#xff0c;美国的种族关系紧张&#xff0c;黑人音乐家很少有机会演出。作为当时为数不多的黑人钢琴家之一&#xff0c;唐参加了许多音乐会巡演…

[chapter27][PyTorch][visdom]

前言&#xff1a; Visdom是Facebook专为PyTorch开发的实时可视化工具包&#xff0c;相当于TensorFlow中的Tensorboard&#xff0c;灵活高效且界面美观。 目录&#xff1a; 1&#xff1a; 环境安装 2&#xff1a; 参数简介 3&#xff1a; 监听单一数据 4&#xff1a; 监听多个数…

晶振电路并联一个电阻作用

晶振电路并联一个电阻的作用 前言 在设计电路时&#xff0c;通常看到一些主控的外部高速晶振并联了一个1MΩ的电阻&#xff0c;但是发现有的电路不用也可以正常工作&#xff0c;对这个就有点好奇啦&#xff1f; 电路图如下&#xff1a; 实际上晶振电路在工作时没有并联一个1…