README

基于OpenLayers的WebGIS简单功能开发


Static Badge Static Badge

上机目的

了解并掌握将地理空间数据发布为数据服务的方法,掌握开源WebGIS开发技术。学会使用GeoServer进行数据服务发布,使用OpenLayers进行空间查询等WebGIS功能开发。

上机软件环境

OS:Win10等;

开发环境:VSCode等;

应用软件:OpenLayers、Geoserver等;

上机内容

(1)使用GeoServer将矢量数据发布为WMS/WFS图层;

(2)进行图层之间的叠加显示,进行图层显示控制;

(3)通过Openlayers调用发布的地图/数据服务,实现空间查询(包括地图查属性、属性查地图)功能(可选一功能实现)。

上机要求

要求独立完成上机实验,报告撰写格式规范。人机交互顺畅,界面友好。报告内容包括:上机实验目的、软件环境、上机要求、关键代码与步骤、上机小结。

关键代码与步骤

地图服务发布

技术栈使用:Vue3 + ElementPlus(组件库) + Openlayers 9+ Geoserver(地图服务发布)

首先使用Geoserver创建工作空间,然后创建存储仓库,矢量数据源选择Shapefile,DBF字符集要选择GBK,防止中文乱码,选择WMS服务,然后点击发布。

要选择坐标参考系统,然后计算边框、经纬度边框范围。

请添加图片描述

前端加载地图

请添加图片描述
使用Vue3的onMounted生命周期钩子使地图在组件挂载时调用,加载了OSM地图,自己发布的WMS图层,百度地图矢量注记。

ImageWMS中设置了地图Url,参数和服务类型,保证能够正确加载刚刚发布的地图。

要实现点击WMS图层出现要素属性弹窗,需要调用getFeatureInfoUrl函数,在其中设置点击的经纬度,地图缩放等级,坐标系,图层类型等,使用fetch请求Url,将response转换为json格式,并获取属性信息,加载弹出框,此外设置了鼠标事件,将弹出框设置在点击的位置,并设置了转换动画,移动缩放到点击的位置,见图3。

在这里插入图片描述

在这里插入图片描述

实现查询图层并高亮显示,使用了TileWMS,通过CQL_FILTER对属性进行查询,并设置styles。还实现了删除高亮图层的功能,见图5。

在这里插入图片描述

在这里插入图片描述
还设置了切换地图的功能,有OSM图层,百度矢量地图,百度影像地图,代码实现如下:
在这里插入图片描述
通过创建TileLayer对象并通过XYZ对象设置地图的url实现加载,并调整地图的插入顺序,保证自己发布的中国资源枯竭城市图层在其它底图之上,避免被遮挡。

在这里插入图片描述
在这里插入图片描述

小结

通过使用GeoServer发布地图,并使用Openlayers加载地图Url,并通过WMS图层的getMap方法获得图层及属性,并能够查询图层、高亮图层。还设置了跳转动画,完成了一个简单的WebGIS开发示例。其中使用GeoServer发布图层时要注意图层的坐标系,否则会出现数据加载失败的情况,此外由于Openlayers开发网上教程较少,需要阅读官方文档,开发遇到的问题较多,但最后都顺利解决,提升了自己解决问题的能力和开发水平。

ver发布图层时要注意图层的坐标系,否则会出现数据加载失败的情况,此外由于Openlayers开发网上教程较少,需要阅读官方文档,开发遇到的问题较多,但最后都顺利解决,提升了自己解决问题的能力和开发水平。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: "vscode readme"是一个名为"read me"的VS Code扩展,它是一个文本阅读器。安装了这个插件后,你可以通过快捷键或自动阅读的方式在状态栏中阅读文本文档。该插件提供了TXT文件选择、进度设置等功能。你可以在"Feature Contributions"中了解更多信息,并在设置中进行编辑。\[1\]根据引用\[2\]中的代码,我们可以看到该插件的入口是"extension.js"文件。它注册了一个名为"viewReadme.showLocal"的命令,当执行这个命令时,会弹出一个输入框,让用户输入模块名。然后会创建一个名为"Local"的对象,并传入模块名作为参数。\[2\]根据引用\[3\]中的目录结构,我们可以看到插件的文件包括了.vscode目录、CHANGELOG.md、extension.js、package.json、README.md等。其中,README.md是插件的文档。\[3\] #### 引用[.reference_title] - *1* [VSCode 插件开发(ReadMeForVSCode本插件仅作为学习使用)](https://blog.csdn.net/qq_35139974/article/details/119214129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [VS Code插件开发指南(view-readme)](https://blog.csdn.net/weixin_33739646/article/details/89065772)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值