CesiumJS如何加载2000坐标系的DWG文件(带带号或者不带带号)

CesiumJS是一款开源的3D GIS框架,目前使用率非常高,应该是3D GIS中应用最广的GIS框架,可以将地理数据非常好看的展现出来。而DWG文件是在工程领域应用非常广的文件格式,基本上在工程施工前,招标过程中都会产生非常多的DWG文件。

我们有的时候,希望能够将DWG文件位置对齐到地理系统当中,并展现在3D GIS系统里,效果如下图所示:

DWG预览效果视频链接: https://www.bilibili.com/video/BV1EM24BREJJ/https://www.bilibili.com/video/BV1EM24BREJJ/

我们将一个dwg文件导入CesiumJS主要分为两步:

第一步、将坐标转换为经纬度坐标或者web墨卡托(也就是4326或者3857)

那么在坐标转换之前,我们先要识别dwg自身的坐标信息,一般来说导入的dwg的位置信息主要分成三种情况:

1.国家2000坐标系

2.地方2000坐标系

3.没有对应位置信息的局部坐标系

今天我们主要讨论国家2000坐标系的情况,一般我国的2000坐标系都采用的是高斯克吕格投影,这种投影方式有两种切分的方式,分别是3度带6度带。一般默认使用3度带,因为大部分的dwg文件范围很小,3度带的空间足够了,这样还可以畸变更小,

在这种情况下,还要分为带带号和不带带号,所谓带带号就是坐标值中的y值的前两位是带号,比如坐标是:x:2949320,y:36353822,其中36就是带号,带带号的情况,由于所有的信息是全面的,因此不用做任何处理,可以直接转换成相应的经纬度数据,而不带带号的情况,需要先确定带号后才可以,这个在gisbox当中只需要在对应的地图中点击项目所在的位置,系统就会自动识别带号。

因此对于国家2000坐标系的情况,我们可以很轻松的将坐标转换为经纬度坐标后,直接对齐到CesiumJS当中。

第二步、将转换坐标后的矢量数据发布为CesiumJS能导入的形式

这一步实际上更加困难一些,因为DWG本身不仅是一些矢量,同时还带有样式信息,另外如果在考虑性能问题的话,我们的最佳选择是将DWG转换为mvt协议,然而CesiumJS本身并不原生支持mvt,因此这里我们曲线救国,使用GISBox将DWG文件转换为wmts协议,在后端实时绘制瓦片的同时并存储为缓存,这样就可以很方便的导入到CesiumJS当中了,当然我们也需要选择CesiumJS支持的TilingSchema。

通过这两步,我们就可以很方便的将dwg文件导入到CesiumJS当中,如果大家需要导入的OpenLayers或者Mapbox的话,可以选择直接发布成mvt协议,这样灵活性就会更高一些。

代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值