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中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载, 蓝色部分是睡眠时间,自我感觉不用写 ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...
随机推荐
- JAVA项目从运维部署到项目开发(五. Nginx)
<Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器>一文简单介绍了关于直播数据流的nginx相关配置,下面简单介绍下各种项目如何配置nginx. web项目. ...
- mysql8.0忘记密码如何操作?
很不幸,刚安装了MYSQL8,由于密码验证方式的不同,自己折腾了一小会,不小心退出来了,进不去了.从网上面查了一下资料,好多都不是特别好使,最后摸索出来可以进行如下操作: 1. 在配置文件中设置将密码 ...
- Apache Httpd 启用重定向 rewrite
1.启用模块 由:#LoadModule rewrite_module modules/mod_rewrite.so 更改为:LoadModule rewrite_module modules/mod ...
- Centos7安装mysql8教程
网上的教程很多,我也参考了很多,以下是我实践的步骤,真实有效. 1.配置Mysql 8.0安装源: sudo rpm -Uvh https://dev.mysql.com/get/mysql80-co ...
- jsp数据交互(一).3
引入的文件如果是jsp则应定义为***.jspf文件,如果其他文件可定义为***.inc文件,即include file. jsp:include是既可以静态包含又可以动态包含,用jsp:includ ...
- 2019前端面试系列——Vue面试题
Vue 双向绑定原理 mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter.getter,在数 ...
- Initialization failed for 'https://start.spring.io' Please check URL
错误描述:Initialization failed for 'https://start.spring.io' Please check URL, network and proxy setting ...
- 利用dockerfile 安装一个nginx-1.14.1
FROM docker.io/centos MAINTAINER jim 107420988@qq.com ENV TZ "Asia/Shanghai" #ENV TERM xte ...
- 腾讯位置服务API快速入门
前言 之前项目有个需求,在网页上显示微信发送过来的位置信息,该开始想用百度地图,后来发现腾讯地图相对简单一点 快速入门 申请Key https://lbs.qq.com/guides/startup. ...
- 插入Oracle数据库后返回当前主键id
最近做一个spring版本3.0.4的老项目功能,应用场景要用到插入oracle表后返回主键ID拿来和其他表关联. 用oralce的可以一直用这种处理方式,高兼容低,搜索网上的资料都不能和这个Spri ...