GIS二维电子地图开发总结

news2024/9/20 18:38:18

二维平面地图,目前支撑设备渲染,真实场景,后期电子围栏,运动轨迹等业务需求做铺垫
一、所涉及的技术栈:
1.Openlayers,加载渲染地图
2.Geoserver 发布wms和wfs()服务
3.Arcgis,Arcmap,进行源文件编辑修改,(点,线,面)空间校正和地理配准技术(处理png图片,为矢量瓦片tiff格式)
4.Udig,geoserver发布地图服务器的编辑样式工具,采用SID绘制样式
5.CAD处理提供的dwg源文件,部分注释以及多余的标注,点,线,面
6.Shape files 利用ArccataLog 数据转换坐标系
7.Igis渲染地图引擎,apache-tomcat部署Geoserver

二、源文件转化修改步骤:
1.利用arcmap转换dwg源文件,转换数据格式如图:
在这里插入图片描述
选择对应的输入文件源文件(dwg)格式,选择对应的文件夹,输入目录

2.利用arcmap修改Shape files源文件,修改数据如图:
在这里插入图片描述
点击加号,选择要修改的Shape files源文件,选中添加
三、Geoserver部署步骤(wms,wfs):
Geoserver是一个Server. 它是开源的,允许用户查看和编辑地理数据。这是地理信息系统(GIS) 领域。GeoServer 是符合OGC 规范的一个全功能的WFS-T 和WMS server。

1.安装apache-tomcat和下载Geoserver
2.解压Geoserver 至webapps目录下,启动apache-tomcat
3.通过部署的服务ip+端口(默认8080)+/geoserver/web/ 访问,默认用户名/密码(admin/geoserver)
在这里插入图片描述
ip+端口(8080)+/geoserver/web/访问
4.添加工作空间:注:(不要选择Isolated Workspace)
在这里插入图片描述
5.添加数据存储仓库:(可添加文件夹,图层上填充矢量图片,可添加geotiff)
在这里插入图片描述
6.新建图层(选择新增的数据存储)
在这里插入图片描述
7.新建图层组:(添加新建的图层)
在这里插入图片描述
8.利用udig配置样式style
在这里插入图片描述
9.layer preview图层预览查看部署效果
在这里插入图片描述
10.udig配置style
在这里插入图片描述
四、利用Openlayers,Igis渲染加载:

       GisMap() {
            var WMSurl = 'http://127.0.0.1:8080/geoserver/lhPublic/wms?service=WMS'
            this.mapObj = new window.iGis.GisMap()
            var options = {
                mapType: iGis.MapType.WMS_MAP,
                url: WMSurl,
                divId: 'Map',
                layerParams: {
                    VERSION: '1.1.1',
                    LAYERS: 'lhPublic:lhgis',
                },
                center: [116.349581,39.671403],
                zoom: this.mapLevel,
                minZoom: 18,
                maxZoom: 20,
                zoomType: 'small',
                projection: 'EPSG:4326',
                isScaleLine: this.showScaleLine == false ? false : true,
                isMousePosition: true,
                isZoomLevel: true,
                // isOverview: true,//左下角视图
                units: 'metric',
                wrapX: false
            }
            this.mapOption = options
            this.versionSwitch()
            this.mapObj.addCustomClickEvent((e) => {
                console.log(e, '地图位置信息')
                this.$emit('map-location', e)
                this.getMouseLOcation(e) //把点位信息发给父组件
                this.removePopup()
                if (this.allowShowLocationByClick && this.allowShowLocationByClick.value) {
                    // 点击增加点
                    const dataObj = [{ id: Math.random() * 1000000, anchor: [13, 13], src: '/images/theme/dark/map/position_red.png', coord: e }]
                    if (this.layerObj['locationPoint']) {
                        // this.layerObj.locationPoint.setData(dataObj, 0)
                        this.layerIcons.locationPoint = dataObj
                        this.layerObj.locationPoint.refreshLayerByData()
                    } else {
                        this.addMarket(dataObj, 'locationPoint')
                    }
                }
            })
            this.showFloorName()
            this.$emit('mapReady')

            this.animation = new window.iGis.maptools.Animation({
                gisMapObj: this.mapObj
            })

五、细谈空间校正和地理配准:
1:采用ArcMap进行校正和配准
在这里插入图片描述
图中空间校正:可帮助shp文件实际的获取正确的坐标系
地理配准:可帮助png文件获取地理坐标系,并且转为tiff文件,利用geoserver进行部署

注意事项:
1:顺序规则:点—线—面(由上而下)
2:经纬度规则:采用4326 – wg84
3: 样式文件发生改变后,图层组时不能立马生效的,需要把对应的图层删除,再添加进去方可生效。
4: 修改文件过程中,如发现缩放至可见图层不显示,可采用arcLog进行经纬度导入操作。
5:新增点线面,必须添加对应的属性,layer,refname属性,否则无法渲染展示
6:加载无法显示,排除问题思路:
1:中心点是否偏差过大
2:经纬度规则
3:是否遵循 空间命名::图层名称规则(这样形成的唯一KEY)
7:图片填充,路径正常,但是无法显示问题,是因为geoserver强缓存和style生成之后的发布导致,可以采用上面的图片导入按钮重新导入。
备份dwg源文件

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

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

相关文章

3.1、Ubuntu20桌面版远程连接SSHMobaXterm远程连接编辑器

连接SSH 安装系统完成并登陆后,输入 修改源码地址 进入apt文件夹 cd /etc/apt 备份文件 cp sources.list sources.list.bak 修改源码地址 vi sources.list # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of…

数据结构初级<排序>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 你的阅读和理解将是我极大的动力! 目录 前言 排序的概念 常见排序简述 正文 直接插入排序 原理 代码实现 分析 希尔排序 原理 代码实现 分析 直接选择排序 原理 代码…

类加载的时机与过程

------ 摘自 周志明 《深入理解Java虚拟机》类加载的时机一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Preparati…

6、数组的常见运算

目录 一、数组的算术运算 二、数组的关系运算 三、数组的逻辑运算 一、数组的算术运算 (1)数组的加减运算:通过格式AB或A-B可实现数组的加减运算。但是运算规则要求数组A和B的维数相同。 示例1: A[1 2 3 4]B[2 4 6 8]C[1 1 …

三种简洁易行的方法解决基于Vue.js的组件通信

在总结Vue组件化编程的数据通信方面,看了网上的很多资料,都是讲父子组件的数据交互也就是参数传递,在组件的通信方面分几种情况,比如父子组件、非父子的兄弟组件、非父子的其他组件等等,这样看来,基于Vue.j…

STC15系列单片机EEPROM读写示例

STC15系列单片机EEPROM读写示例🌼STC15手册有关EEPROM描述 🌾STC15系列单片机内部集成了大容量的EEPROM,其与程序空间是分开的。利用ISP/IAP技术可将内部DataFlash当EEPROM,擦写次数在10万次以上。EEPROM可分为若干个扇区&#xf…

Android 蓝牙开发——蓝牙协议配置(七)

蓝牙主要分为两种模式,一种是媒体输出(Source)端,一种是媒体输入(Sink)端。也可以理解为服务端(Server)与客户端(Client)的关系。 蓝牙配置文件(B…

4-1指令系统-指令格式

文章目录一.指令的基本格式1.结构2.长度3.根据操作数地址码数目分类(1)零地址指令(2)一地址指令(3)二地址指令(4)三地址指令(5)四地址指令二.扩展操作码指令格…

Maven学习(二):Maven基础概念

Maven基础概念一、仓库二、坐标三、全局setting与用户setting区别一、仓库 仓库:用于存储资源,包含各种jar包;仓库分类: 本地仓库:自己电脑上的存储仓库,连接远程仓库获取资源;远程仓库&#x…

信息论复习—离散信道及其容量

目录 信道的简介: 信道的分类: 离散无记忆信道(DMC)模型: 转移概率: 离散无记忆信道的转移矩阵 输出仅与当前的输入有关: 后验概率: 离散无记忆信道的后验概率矩阵 &#xf…

spring-boot-starter-jdbc和mysql-connector-j依赖爆红的解决办法

spring-boot-starter-jdbc和mysql-connector-j依赖爆红的解决办法 目录spring-boot-starter-jdbc和mysql-connector-j依赖爆红的解决办法出现问题之前出现的问题:解决办法:方案一:第一种是继承 spring-boot-starter-parent 然后 依赖覆盖方案…

怎么用Python测网速?

“speedtest-cli” 是一个 Python 的第三方库,它可以用来在命令行中测试网络速度。它使用了 Speedtest.net 的服务器来进行测速,并可以提供下载和上传速度、延迟、丢包率等信息。使用这个库可以很方便地在终端中测试网络速度,而无需在浏览器中…

轻量级代码生成器加测试数据生成器

轻量级代码生成器加测试数据生成器介绍代码生成常用注解基本使用全局控制属性模板文件相关属性模板文件配置模拟数据生成自定义词库索引注意事项从已经存在的表完成映射,生成模板代码使用步骤Gitee项目链接 介绍 本项目是一个轻量级代码生成器,并提供多种方式来完成模拟数据的…

力扣(LeetCode)2299. 强密码检验器 II(C++/Python3)

题目描述 模拟 仅当密码包含强密码的所有特性,它是一个 强 密码。提示我们,遍历密码,维护 444 个标志,标志记录特性。遍历结束,根据标志判断特性。 class Solution { public:bool strongPasswordCheckerII(string pa…

MySQL建立数据库时字符集和排序规则的选择

文章目录前言一、字符集?二、Mysql中的字符集1.Unicode与UTF8、UTF8MB4、UTF16、UTF32关系2.Mysql新建数据库时选择哪种字符集呢?三、Mysql排序规则四、Mysql查询字符集和排序规则常用的命令前言 在MySQL中,字符集和排序规则是区分开来的&am…

【ArcGIS 小贴士】Pro VS ArcMap及软件获取

有朋友问我,ArcGIS Pro是不是比ArcMap好用。 我觉得用Pro的感觉,用Pro的感觉比ArcMap Ribbon界面 Pro采用的是Ribbon用户界面,与现在的微软的Office软件相似,功能的组织更加清晰。10.x版本的ArcGIS则是传统的工具条界面 有些朋友…

day42|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 1.代码 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int i: stones) {sum i;}int t sum;sum sum /2;vector<int>f(sum 1);for (int i 0; i < stones.size(); i) {for (int j …

【Pytorch基础(2)】张量的索引,切片与维度变换

一、张量的维度索引 张量的索引是从第零维度开始的。让我们来创建一个四维的张量做举例说明&#xff1a;torch.Tensor(2,3,64,64) 此时&#xff0c;这个张量可以表示两张边长为64的正方形彩色图像&#xff0c;具体来说&#xff0c;张量的第零维表示图像的数量&#xff1b;第一…

Apollo星火计划学习笔记——Control 专项讲解(LQR)

文章目录1. 算法相关基础1.1 一阶倒立摆1.2 二自由度车辆横向跟踪偏差模型1.3 车辆横向跟踪偏差模型1.4 车辆横向跟踪偏差倒车模型1.5 轮胎侧偏角与侧偏刚度1.6 LQR 线性二次型问题:2. LQR代码解析2.1 WriteHeaders&#xff08;调试过程中的状态量&#xff09;2.2 LatControlle…

Android APK 瘦身

Android APK 瘦身的几个方法将项目中的图片由png、jpg转为webp格式。如下操作&#xff1a;1.1选中图片或者含有图片的文件夹 右键选择Convert toWebP..1.2根据自身情况选择有损压缩还是无损压缩备注&#xff1a;官网连接&#xff1a;https://developer.android.google.cn/studi…