CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上
前面分享过一篇如何将CAD海量数据显示在百度地图上(百度地图Canvas实现十万CAD数据秒级加载),但是很多开发者在CAD数据提取时遇到了问题,所以接下来的文章将介绍如何将CAD数据提取。
准备软件:
1. Global Mapper V20.0
2.AutoCAD(我用的是2019,其他版本也可以)
第一部分 CAD提取块
由于一张CAD图数据量巨大,在Global Mapper中加载整张CAD图移动和处理都会非常慢,所以我们先要提取一部分能够较快校准的块。
第一步,将CAD图打开,如图

第二步,在命令栏输入:w 然后回车

第三步,在弹出的窗口中点击选择转换为块,然后点击选择对象前面的按钮,在图上框选出一块比较容易在地图上定位的区域

第四步,选择完毕后按回车,并选择保存的文件名和路径,到此第一部分就完成了

第二部分 Global Mapper地图加载
第一步 打开安装好的Global Mapper

第二步,加载在线底图,点击左上角地球按钮

在弹出的窗口中点击 Add New Source

选择第一项 ESRI RESTful/Google Maps Tiles ,然后确认

将地址填写为:https://khms0.googleapis.com/kh?v=852&hl=zh&x=%x&y=%y&z=%z
然后点击OK

然后给这个地图源取个名称(随意),点击OK

然后选择刚刚添加的数据源,选择Entire Data Source Bounds,最后点击Connect
!!!注意:这里需要用到国外网络!!!
因为国内的地图大多数有偏移,校准后的结果并非准确的WGS84坐标,所以我们需要用到Google无偏移地图

加载成功后可以在软件中看到这个世界地图

第三部分 Global Mapper加载CAD图
第一步,完成第二部分后,选择左上角File -> Open Data Files , 打开我们之前在第一部分保存的CAD块

第二步,选择投影,选成和下图一样

第三步,确定之后等待加载完成,可以看到左侧Workspace里面已经有我们添加的图,此时 右击 添加的CAD图层,然后选择 ZOOM_TO,我们将会看到我们选出的清晰的CAD块

由于CAD图签署了保密协议,所以本文中所有的图都进行了马赛克操作

第四部分 校准CAD图,得到校准参数
第一步,通过缩放地图,在地图上大概找到CAD图在地图上对应的位置,位置调整合适后右击添加的CAD图层,选择 RECTIFT

第二步,在CAD图中选择一个点
然后,在地图中找到对应的点,最好选择交叉线,比较好定位

!!!将左下角四个值记录下来(关键)!!!记录表格参考:

因为基本所有CAD图都只需要平移操作,所以,只需要一个参考点即可,也可多个点求平均值,偏移值 = 实际值-CAD值
偏移值为正数时,在纵向方向上CAD图需要上移,反之下移,在横向方向上偏移值为正则右移,反之左移。
第三步,回到主窗口,右击添加的CAD图,点击SHIFT

选择第一项

将之前计算的偏移值粘贴进来,确定

将地图调节到合适个大小,然后进行微调,可以得到比较准确的偏移参数,如下图所示

CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上的更多相关文章
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- Flutter 初始化数据完成后再加载页面
一.初始化数据完成后再加载数据 1.为了达成这个目标尝试了多种方法总是失败 在Init 和didChangeDependencies 初始化数据过也不行 @override void didChang ...
- CAD从二进流加载数据(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::ReadBinStreamEx 从二进流加载数据,详细说明如下: 参数 说明 IMxDrawBinStream* pBinStream ...
- 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)
代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...
- HIbernate的脏数据检测和延缓加载
脏数据监测: 在一个事务中,加载的数据,除了返回给用户之外,会复制一份在session中,在事务提交时,会用session中的备份和用户的数据进行比对,如果用户的数据状态改变, 则用户的数据即为:脏数 ...
- IOS - UITableView分批显示数据 实现点击加载更多
Phone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底部有一察看更多选项,点击察看更多查看解析的剩余数据.基本上就是数据源里先只放10条, 点击 ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)
下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: 1,点击“保存”将联系人存入userList.plist文件中 2,点击 ...
- Android中获取网络数据时的分页加载
//此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载, 蓝色部分是睡眠时间,自我感觉不用写 ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...
随机推荐
- Django实现web端tailf日志文件
这是Django Channels系列文章的第二篇,以web端实现tailf的案例讲解Channels的具体使用以及跟Celery的结合 通过上一篇<Django使用Channels实现WebS ...
- tcp 3次握手四次挥手
转载link:http://www.jianshu.com/p/9968b16b607e 最近在复习计算机网络,看到TCP这一章,总结一下. 建立TCP需要三次握手才能建立,而断开连接则需要四次握手. ...
- Python装饰器实现类Java注解功能
最近想用Python写一个简单生成器,类似指定类型和范围,返回指定列表: 比如想要 0 ~ 3 的整数,则 我只需要指定: 最小:0, 最大:3, 步长:1 则返回一个 [0,1,2,3] 的列表 ...
- SpringBoot Kafka 整合使用
前提 假设你了解过 SpringBoot 和 Kafka. 1.SpringBoot 如果对 SpringBoot 不了解的话,建议去看看 DD 大佬 和 纯洁的微笑 的系列博客. 2.Kafka K ...
- JS-数组的定义
- kafka集群跨双网段及多网段通信问题解决
一.问题场景: 实际生产环境总存在很多kafka集群跨网段的问题.kafka集群可能存在多个网卡,对应多个网段.不同网段之间需要同时与集群通信,即跨网段生产消费问题. 二.解决方法:自定义listen ...
- jboss 未授权访问漏洞复现
jboss 未授权访问漏洞复现 一.漏洞描述 未授权访问管理控制台,通过该漏洞,可以后台管理服务,可以通过脚本命令执行系统命令,如反弹shell,wget写webshell文件. 二.漏洞环境搭建及复 ...
- logback使用配置
一:logback.xml配置内容如下 <?xml version="1.0" encoding="UTF-8"?> <!-- Copyrig ...
- window下打jar包
比如我的项目在 F/Myjar F:\Myjar>ll'll' 不是内部或外部命令,也不是可运行的程序或批处理文件. F:\Myjar>cd mian系统找不到指定的路径. F:\Myja ...
- 【转载】C# 中的委托和事件(详解)
<div class="postbody"> <div id="cnblogs_post_body" class="blogpost ...