ARCGIS进行地理配准并加载到谷歌地球中查看
普通的地图图片如何能让其附有经纬度坐标和投影信息,如何能将普通的地图图片加载到诸如谷歌地球等相关的三维地球软件当中进行生产或学习使用呢,这就要用到gis当中常用的一种功能,叫做地理配准。地理配准并不复杂,只要有基准影像和能够进行地理配准的软件就可以对普通的地图图片进行地理配准。本文所要配准的图片是在百度图片中下载的最新北京地铁图(之所以选择地铁图是因为图上有站点信息,可以方便的选取控制点,选取控制点是一个繁琐的工作,需要耐心,这里偷点懒)。如图:

下面就来介绍如何进行地理配准。
本文需要用的软件工具有2个,第一款要用的软件是locaspace viewer,该软件是一款三维地球软件,谷歌地球有的功能,它都有,它集成了Google Earth、天地图等影像和三维地形的在线地图地形服务,并支持影像地形免费下载,使用起来很方便。第二款是ARCGIS 10.1。
附上这两款软件的下载地址
locaspace viewer:http://rj.baidu.com/soft/detail/39338.html?ald
ARCGIS10.1:链接:https://pan.baidu.com/s/1cManZC 密码:4ck8
操作步骤如下:
1.首先要通过影像下载软件下载基准影像,可以用locaspace viewer来下载。进入locaspace viewer软件界面

2.在操作模块中点击影像下载,影像下载提供两种确定下载范围的方式,第一种是自行绘制的shp格式、kml格式以及其他矢量数据格式的边界导入到软件中,第二种是在软件中框选影像下载范围。本文采用第二种方式,在软件中框选影像下载范围。


框选完下载范围以后,弹出影像下载对话框如图,在对话框中有多项可选内容:下载级数(供1-19级下载),本文所下载的影像为16级;底图类型(有谷歌影像和天地图影像,推荐底图用谷歌影像),叠加类型(天地图中文标注和天地图英文标注),这里叠加类型需要选择天地图中文标注叠加,只有选择了天地图中文标注叠加才能在基准影像上显示出北京地铁的路线和站点信息,这是为了方便接下来选取对应控制点。点击“估算数据大小”来估计数据总大小。还可以自定义数据名称和存储路径,点击开始按钮开始下载。

静静等待(速度还是挺快的)下载完成,会自动打开数据所在文件夹。
把下载下来的影像直接加载到arcgis中,会发现影像有拉伸现象,如果不知道怎么处理有拉伸的影像可以先看看帖子:http://www.cnblogs.com/123zxc/p/5632321.html。如果知道如何处理或者没出现拉伸的情况咱们就继续往下看。把下载下来的影像加载到arcgis中,可以看到,不仅有影像而且有标注信息,这样一来,我们的控制点选取工作就非常方便了。

再打开一个arcgis工程,把北京地铁图加载到其中,可以看到会出现以下提示:未知的空间参考。这个原因相信大家都知道,就不多说了。直接点确定进行下一步。

这里说明一下,之所以要打开两个arcgis工程,是因为如果影像和图片放在一个工程中,则在窗口中只能显示一个,要想把影像和图片显示在一个窗口里非常困难,配准起来会比较麻烦。
arcgis 的地理配准功能提供了两种配准方法,一种是直接在待配准图片上输入X、Y坐标或者输入经纬度信息(度分秒形式的);第二种是控制点链接,也就是只在一个工程中,点基准影像上的一个点然后再点待配准影像相对应的点,这样链接后达到配准的目的。本文打开两个工程是为了用第一种配准方法--直接输入点的信息。
首先要在两个工程中把右下角显示的单位信息统一起来。双击图层

弹出数据框属性对话框,在常规模块下选择显示单位为度分秒。可以看到右下角的坐标显示单位变成了度分秒形式的。两个工程都要进行该操作,单位统一了输入才有意义。


在地铁图工程中,工具栏的空白处右击,打开地理配准工具条,选择配准影像即北京地铁图.jpg。


再回到基准影像工程中,开始选择控制点。控制点的选取要均匀分布在地图上,尽可能多选择控制点,控制点越多越均匀,配准出来的图片精度就越高,因为本文是操作教程,精度无需太高要求,所以只选择5个控制点,分别是西单站、西苑站、高家园站、郭公庄站和南楼梓庄站。以西单站为例选取控制点,获取其经纬度信息并记录下来(只需要把光标放在站点的中心位置就可以获得了)。依照该方法,依次获取其他控制点的经纬度信息。

5个控制点在图上的分布情况。基本是均匀覆盖在地图上的。

在基准影像工程中选取并获得了控制点的经纬度信息后,回到地铁图工程中开始进行控制点经纬度信息输入操作。
以西单站为例:将窗口放大至一定位置,单击图中按钮(添加控制点),点击西单站的中间位置,添加了控制点,右击会发现,输入经纬度的按钮时灰色的,这是怎么回事呢?那是因为这个arcgis工程下的图层未定义投影坐标,所以导致无法输入经纬度,该如何操作呢?双击图层,出现数据框属性对话框,点击坐标系,选择WGS_1984_UTM_Zone_50N坐标系,点击确定。再次点击添加控制点就会发现可以输入经纬度信息了。




北京处在东北半球,所以经度是E,纬度是N,依次输入控制点的经纬度信息即可。输入第一个点之后会发现地图从窗口中消失,只需在图层中右击地铁图图层,点击缩放至图层就好了。按上述方法输入其他控制点的经纬度信息。输入完成后,在地理配准工具条中点击地理配准下拉工具,点击更新地理配准,完成地理配准。


到此工作就结束了么?没有,因为这个时候配准完的地图还没有投影信息而只有经纬度信息,如果加载到谷歌地球等三维地球软件中还是会无法正确显示的,所以还要进行导出操作。按照如图操作,弹出导出数据对话框。

空间参考选择数据框,选择导出路径文件夹,开始导出。

点击保存按钮后,弹出对话框提示是否要提升像素深度,此处选择否,如果点是,则导出的地图加载到三维地球软件中是黑的。

成功导出后,再次打开locaspace viewer,点击加载图层,将导出的地铁图加载进去,最后的可以看到成功加载了。


谷歌地球中的加载效果。

配准后的地图与基准影像也可以叠加在一起了。

ARCGIS进行地理配准并加载到谷歌地球中查看的更多相关文章
- arcgis api for JavaScript _加载三维图层(scene layer)
arcgis api for JavaScript _加载三维图层(scene layer) arcgis api for JavaScript 4.x 版本增加对三维的支持. 关于三维图层(sce ...
- Java ClassLoader基础及加载不同依赖 Jar 中的公共类
转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,Cla ...
- Java 类中各成分加载顺序 和 内存中的存放位置
参加一个笔试,有一个关于类的静态代码块.构造代码块.构造函数的执行顺序的问题.不太清楚,网上百度了一下.在这里记录一下. 一.什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new ...
- android开发之Fragment加载到一个Activity中
Fragments 是android3.0以后添加的.主要是为了方便android平板端的开发.方便适应不同大小的屏幕.此代码是为了最简单的Fragment的使用,往一个Activity中添加Frag ...
- 在懒加载的Ionic工程中使用 ionic2-auto-complete 组件:Can't bind to 'dataProvider' since it isn't a known property of 'ion-auto-complete'
问题描述: 在基于懒加载的Ionic工程中,使用ionic2-auto-complete组件(GitHub地址:https://github.com/kadoshms/ionic2-autocompl ...
- android 在自定义的listview(有刷新加载项)列表中,数据过少时不能铺满整个屏幕时,header和footer同时显示问题
android 在自定义的listview(有刷新加载项)列表中,数据过少时,当刷新时,加载项也会显示,这是很头疼的一个问题,查阅了一些资料,总结了一个比较不错的方法: 原来代码: @Overrid ...
- SpringMvc 系统启动时加载数据到内存中
SpringMvc 系统启动时加载数据到内存中 学习了:http://blog.csdn.net/newstruts/article/details/18668269 https://www.cnbl ...
- ArcGis Javascript API (V3.6)加载天地图
Arcgis的Javascript api开发很活跃,不知不觉都发布了3.6的版本了.该版本基于dojo 1.8.3开发的. 从dojo 1.8开始,AMD机制用得越来越多了,而且require([& ...
- ArcGIS API for JS4.7加载FeatureLayer,点击弹出信息并高亮显示
我加载的是ArcGIS Server本地发布的FeatureService,ArcGIS API for JS4.7记载FeatureLayer时,在二维需要通过代码启用WebGL渲染,在三维模式下, ...
随机推荐
- sqlalchemy 实体属性提前加载
在flask里需要给视图传送数据,肯定需要把模型的实体属性提前加载,可以使用 sqlalchemy.orm.subqueryload 或 sqlalchemy.orm.joinedload 示例: @ ...
- ProcessOn
1.地址:http://www.processon.com/ 2.简介:在线创作流程图.BPMN.UML图.UI界面原型设计.iOS界面原型设计等. 3.优势:无需安装,简单易用.可以替代VISO,学 ...
- [转]PHP Session的一个警告
警告全文如下: PHP Warning: Unknown: Your script possibly relies on a session side-effect which existed unt ...
- c#执行bat批处理文件,并通过线程将结果显示在控件中
核心代码如下: Process p = new Process(); p.StartInfo.FileName = filePath; p.StartInfo.UseShellExecute = fa ...
- 【SFTP】使用Jsch实现Sftp文件上传-支持断点续传和进程监控
JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到 ...
- Lab_3_SysOps_Storage_Linux_v2.5
System Operations - Lab 3: Managing Storage in AWS (Linux) - 2.5 =================================== ...
- python---filecmp
ilecmp可以实现文件,目录,遍历子目录的差异对比功能. 自带filecmp模块,无需安装. 常用方法说明 filecmp提供3个操作方法,cmp(单文件对比),cmpfile(多文件对比),dir ...
- 用PHP+MySQL来做分页的演示
用php做分页弄懂逻辑关系其实不难,不过我在听课的时候估计是被老师讲的那些变量里的英文单词给听懵了,因为有几个变量的名字都很像,只是换了两三个英文字母而已,有的就少几个这样的,听到一半已经不知道老师讲 ...
- 非阻塞socket调用connect, epoll和select检查连接情况示例
转自http://www.cnblogs.com/yuxingfirst/archive/2013/03/08/2950281.html 我们知道,linux下socket编程有常见的几个系统调用: ...
- mysql删造成表死锁研究
现在互联网公司对于代码的管理越来越规范,一般都会有3个环境:开发环境,测试环境,正式环境.在开发环境进行开发,开发完成后将代码提交到测试环境进行测试,测试完毕后上线到正式环境. 今天在正式环境上遇到一 ...