SpringBoot+Vue+OpenLayers6完成前后端分离的“疫情地图”实战项目(一、地图数据处理及代码托管)

openlayers6【十二】vue 切片图层 TileLayer 切换地图底图,图层叠加效果 1. 效果图 官方参考文档:https://openlayers.org/en/latest/examples/zoomslider.html 2. 使用 ZoomSlider 控件 2.1 导入ZoomSlider 控件 import { defaults as defaultControls, ZoomSlider } from "ol/control"; 2.2 向map地图创建一个 ZoomSlider控件即可 this.map.addControl(new ZoomSlider()); 阅读详情

前面我们介绍了Vue+webpack+openlayer的地图基础知识,从这一章开始,我们将正式开始我们的基于SpringBoot+Vue+OpenLayers的实战项目---疫情地图!

一、疫情地图数据处理

这里我介绍一下数据来源,我们首先从这里:http://datav.aliyun.com/tools/atlas/#&lat=34.994003757575776&lng=96.85546875&zoom=4

下载到全国各省(这里疫情数据我只统计到了省级)的行政区划图,然后在ArcGIS中根据当前国内疫情感染人数给矢量数据赋值如下图:

这里SHP数据的最后一个字段countNum就是截至到3.26日中国境内各省的疫情感染人数。

二、新建项目covidmap并托管到码云

1、码云新建项目,这里我建立了一个开源项目covidmap

 2、电脑本地新建一个文件夹用来克隆码云上我们刚刚新建的项目,

这里直接在文件夹右击使用Git bash命令

在命令行使用命令  git  clone  ********  后面是具体的码云上项目的地址

上面的截图说明代码已经克隆到本地了。

3、创建项目:

4、运行测试创建的项目:

5、Vscode打开并稍微改造项目 

首先引入我们的openlayers包,这里我用的cnpm下载的比较快一点,下面我也会用cnpm统一操作,不能一会npm一会cnpm容易使程序崩溃。命令如下:

 其中--save是指无论在开发环境中还是线上环境都添加这个依赖包。再看一下我们是否加进来了这个依赖包,打开package.json文件:

ok,已经成功引入了ol最新版本6..2.1。

然后我们修改一下项目结构,我们把系统自动构建的HelloWorld.vue文件删除,把components文件夹也删掉,然后在src文件夹下新建一个pages文件夹,在pages文件夹下,我们新建一个home文件夹,在home文件夹下,我们新建一个components文件夹和我们的地图组件HomeMap.vue如下图:

再打开index.js文件如下图:

这里我们已经把HelloWorld.vue文件删除了,所以我们修改路由配置项为home文件夹下的Home组件如下:

然后我们在home文件夹下的components文件夹下新建一个我们的Map组件,如下图所示:

下面我们在Map.vue中把我们的疫情数据地图加载上,这里通过加载Geoserver发布的地图服务的方式进行加载,首先把我们的SHP数据发布为Geoserver服务如下:

HomeMap.vue的代码如下所示:

<template>
      <div>
            <div id="map"></div>
      </div>
</template>
<script>
import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import GeoJSON from 'ol/format/GeoJSON';
import VectorLayer from 'ol/layer/Vector';
import VectorSource from 'ol/source/Vector';
import {Fill, Stroke, Style, Text} from 'ol/style';
export default {
    name:'OlMapWms',
    mounted() {   
          var vectorLayer = new VectorLayer({
            source: new VectorSource({
                  url: 'http://localhost:8080/geoserver/covidmap/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=covidmap%3Achina&outputFormat=application%2Fjson',
                  format: new GeoJSON()
            })
            });
            var map = new Map({
                  layers: [vectorLayer],
                  target: 'map',
                  view: new View({
                        center: [0, 0],
                        zoom: 3
                  })
             });
    }
}
</script>
<style lang="stylus" scoped>
#map
      width:900px
      height:350px
</style>

这里我们加载的是服务的GeoJson格式数据,如下图所示:

我们再来把App.vue的代码修改一下,代码如下:

<template>
    <router-view/>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

这里只保留了router-view,下面我们再来修改一下router文件夹下的index.js的文件,代码如下:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/pages/home/Home.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    }
  ]
})

这里我们把Home.vue组件引入进行路由到Home.vue界面,最后我们再来修改一下Home.vue的代码 如下:

<template>
  <!-- 这里我们就可以用引入的HomeMap组件了 -->
    <home-map></home-map>
</template>

<script>
// 首先引入局部组件
import HomeMap from './components/HomeMap'
export default {
  name: 'Home',
  // 需要声明局部组件
  components: {
    HomeMap: HomeMap
  }
}
</script>

<style scoped>
</style>

这里我们在Home.vue中引入了HomeMap子组件,并且在模板文件中使用了HomeMap子组件,这样我们的系统Home页面目前就只有我们的HomeMap组件了,下面我们运行系统看一下效果:

这样我们的系统就已经搭建并初步编写成功了,这里由于我的8080端口已经开启了Tomcat,所以我给vue项目重新指定了端口:8086,这个可以在config文件夹下的index.js中修改,如下图所示:

下面我们把我们这一部分的代码推到码云仓库中!

主要执行以下git命令:

1、git status 查看仓库状态

2、git add . 将代码提交到缓存区

3、git commit -m 'project initialize'

4、git push  推到远程仓库

最后,我们再去Git仓库看一下:

ok我们已经成功的推到了远程仓库,这样我们的实战项目的地图数据处理及代码托管就已经完成了!下一节我们继续开发页面,大家加油!

WebGIS开发系列教程(3):Openlayers快速入门 本系列教程为webgis二维开发入门openlayers零基础小白学习教程,本篇为第三篇。完整版可以滑到文末链接下载。 阅读详情

相关推荐

ZLMediaKit+SpringBoot+Vue+Geoserver实现拉取摄像头rtsp流并在web端播放

结合以上流程,需要实现对摄像头名称、在地图上位置的增删改查以及摄像头的预览功能。注意这里的摄像头只支持H264编码格式的拉流和播放。

BADAO_LIUMANG_QIZHI的博客 3189

java spring 集成openlayers springdoc openapi

java spring 集成openlayers springdoc openapi_mob6454cc72f29c的技术博客_51CTO博客

m0_46398929的博客 456

Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合

场景 Openlayers中实现地图上打点并显示图标和文字: Openlayers中实现地图上打点并显示图标和文字_BADAO_LIUMANG_QIZHI的博客-优快云博客_openlayers 打点 上面实现加载显示离线地图并显示图标元素的效果后。 实现当多个元素堆积在一起时实现聚合显示效果。 并且伴随着地图的缩放实现自动聚合显示和取消聚合。 注: 博客:BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_优快云博客-C#,SpringBoot,架构之路领域博主

BADAO_LIUMANG_QIZHI的博客 3409

基于 Openlayers 实现的地图常用功能工具集合

为地图开发人员提供服务的专业地图工具。随机数据:框选范围,生成点线面随机数据。标绘数据:选择点线面,在地图上标绘数据;也可以通过搜索地名进行定位后操作。投影数据转换、火星百度坐标转换、GPS 坐标转换:输入WKTGeoJson格式数据,选择投影坐标。平滑曲线、曲面,缓冲,抽稀:输入WKTGeoJson格式数据。

非科班Java出身GISer的博客 3032

SpringBoot+Vue+Openlayers实现地图上新增和编辑坐标并保存提交

场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.youkuaiyun.com/BADAO_LIUMANG_QIZHI/article/details/108465662 Vue中使用Openlayers加载Geoserver发布的ImageWMS: https://blog.youkuaiyun.com/BADAO_LIUMANG_QIZHI/article/details/115867709 在上面搭建起来Vue+SpringBoot的前后端分离的项目的基础上,并且加载显示地图之后。

BADAO_LIUMANG_QIZHI的博客 2826

Vue+Openlayer使用Draw实现交互式绘制多边形并获取面积

场景 Vue+Openlayer使用Draw实现交互式绘制线段: Vue+Openlayer使用Draw实现交互式绘制线段_BADAO_LIUMANG_QIZHI的博客-优快云博客 在上面的基础上实现的交互式绘制线段,还可以实现绘制多边形并直接计算出面积。 注: 博客:BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_优快云博客 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 1、导入基本模块 //导入基本模块 import "ol/ol.css

BADAO_LIUMANG_QIZHI的博客 2969

动态实现全国疫情地图

通过Vue实现全国疫情地图 先上效果图!! 在这个小DEMO中,使用到获取肺炎感染人数的api接口是: http://interface.sina.cn/news/wap/fymap2020_data.d.json?_=1580892522427 因为没有使用后台语言,直接就是前端访问这个接口 所以用到了jsonp 因为jsonp不会涉及跨域问题,这里还是建议,如果有用到node.js的话还...

weixin_46240162的博客 3065

201:vue+openlayers 加载geojson文件形成围栏,可添加、修改、删除feature,导出geojson

第201个本示例的目的是介绍演示如何在vue+openlayers中实现围栏列表与图中feature双向互动功能。利用GeoJSON().readFeatures获得到features,通过转换在地图上形成图形,通过新增、修改、删除feature,可以更改整体的features关系。点击导出可以将修改后的features形成geojson文件导出来。

大剑师兰特的GIS世界 1545

SpringBoot+Vue+OpenLayers6完成前后端分离的WebGIS项目(整体介绍)

在前面的博客中,我们学习了SpringBoot、学习了Vue、也学习了OpenLayers,并且也都基于它们做了实战的小项目,现在我们要把这些目前市面上非常流行的技术融合在一起开发一个WebGIS项目。我会从零开始逐步编码逐步讲解,从基础知识学起到最后完成一个实战项目!跟大家一起从头开始利用SpringBoot做后台框架,Vue做前端框架,OpenLayers做GIS框架来开发一个完整的WebGI...

MagicMHD的博客 3965

前端交互与后端服务的无缝衔接

本文详细介绍了如何在前端使用OpenLayers框架实现地图的交互功能,并通过Spring Boot与Kotlin构建后端服务来处理和存储数据。文章通过代码示例展示了如何监听数据库消息保存事件,并实时更新地图UI,以及如何实现动态消息展示和编辑。此外,还探讨了如何利用Kotlin编写简洁的后端应用类,以及如何配置PostGIS数据结构映射。

weixin_35761094的博客 222

基于springboot_v2 集成地图

基于springboot_v2 集成百度地图展示

SpringBoot整合第三方工具

整合Junit 1.导入测试对应的starter 2.测试类使用@SpringBootTest修饰 3.使用自动装配的形式添加要测试的对象 @Repository public class BookDaoImpl implements BookDao { @Override public void save() { System.out.println("BookDao is running..."); } } @SpringBootTest class Sprin

海马有力量的博客 1745

spring_boot_openlayers

spring_boot_openlayers

模拟实现疫情分布图 openlayer+Geojson

原始数据来源:http://datav.aliyun.com/tools/atlas/#&lat=33.521903996156105&lng=104.29849999999999&zoom=4 解释个鸡儿,直接上代码(为了防止抄袭,还是解释8,有需求直接私信): 版本一: 1、首先读取geojson数据: //数据是网上下的http://datav.a...

平凡人的博客 1944

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 523

使用MKL+Eigen求解稀疏矩阵方程组

问题:求解Ax=b的解,其中,A为大型稀疏矩阵,长和宽分别为1500^2。 一般思路: (1)A为对称正定矩阵,对A使用cholesky分解。 (2)A为对称不定矩阵,使用LDL‘分解,即: PAP'=LDL' 其中,L为单位下三角矩阵,D由阶数为1或者2的对角块构成,P是置换矩阵。 (3)不对称矩阵:LU分解。 (4)长方形矩阵(长...

薛晓伟 3445

Vue+OpenLayers学习系列(七)OpenLayers 加载GeoServer发布的矢量切片地图

一、首先要切片 注意首先要下载 GeoServer 的矢量切片插件(参见:https://zhuanlan.zhihu.com/p/62751184) 安装完矢量切片插件后,发布吐槽时,需要勾选如下: 然后找到发布的矢量切片图层 打开预览,并且查看浏览器中的源码,查看它的调用方式(在后面OpenLayers调用它时可以用同样的方式去调用): 二、OpenLayers 调用 <template> <div> <div id="map" ref

Ocean111best的博客 3062

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1608

vue框架用OpenLayers实现地图裁剪,定位

由于做大屏,公司想简单的做一个地图显示只想显示湖北省的地图 于是就有了下面的骚操作 个人记录 html <!-- 地图显示容器--> <div id="map" class="amap-page-container"></div> <!-- maker点击显示坐标信息--> <div id="makerAlert" class="makerAlert"> <div class="maker-t"> &

qq_35371821的博客 3015

中小公司无线组网实战:用一台H3C AC和普通三层交换,实现办公网AP统一管理

本文详细介绍了中小型企业如何利用H3C AC控制器与普通三层交换机实现无线AP统一管理的实战方案。通过VLAN规划、DHCP配置和AC控制器设置,构建经济高效的办公网络,解决信号覆盖和连接稳定性问题,特别适合50-200人规模的企业部署。

weixin_42531516的博客 382

告别盲目调参:手把手教你用RKISP2.x Tuner理解AWB、AE、NR等核心模块

本文详细介绍了如何使用RKISP2.x Tuner工具进行ISP调试,重点解析AWB、AE、NR等核心模块的调参技巧。通过RV1126平台的实际操作演示,帮助工程师快速掌握可视化对比实验方法,告别盲目调参,提升图像信号处理效率。

weixin_30300225的博客 392

vue中集成openlayer+天地图实现地图打点和覆盖层加载

使用openlayer加载天地图,实现打点和覆盖层加载

Christina0109的博客 1364

VTK GPU 加速渲染技术

/ 创建颜色工具// 创建立方体数据// 创建OpenGL映射器(注意使用vtkOpenGLPolyDataMapper而不是常规的vtkPolyDataMapper)// 启用VBO(顶点缓冲对象)// 声明几何体是静态的以获得最佳性能// 创建actor// 创建渲染器、渲染窗口和交互器renderWindow->SetWindowName("VTK自定义着色器示例");// 添加actor到渲染器。

深之JohnChen的专栏 1242

Vue+Openlayer实现点击地图添加图标要素信息,编辑点位信息

效果图: 实现代码: <template> <div> <div id="map" ref="map" style="width: 100vw; height: 100vh" /> <div id="overlay-box" /> </div> </template> <script> import "ol/ol.css"; import TileLayer from "ol/layer/.

3004

互联网人提高效率必备软件合集

很多的时候我们解决不了问题,只是因为没有找到对的工具,实际上,很多好的工具就在那里,只是你不用而已。这点上,信息壁垒是一个很大的原因,因此我希望兄伙伴们多出去走走,不要只是局限在一个圈层;

zhonglunshun的专栏 3484

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+
上一篇: Vue+Webpack+OpenLayers6完成组件化的WebGIS开发(二、组件化开发WebGIS实例)
下一篇: MyBatis Plus从入门到熟练使用(一、入门使用)
MagicMHD
博客等级 码龄9年 503粉丝 78原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值