本文介绍在ArcMap软件中,导入.mxd地图文档文件后图层出现感叹号地图显示空白等情况的解决办法。

  在ArcMap软件使用过程中,我们经常会需要将包含有多个图层的.mxd地图文档文件导入软件中;例如,如下图所示,我们希望将名为测量标识1.mxd的地图文档文件导入ArcMap软件。

  随后,我们可能会遇到如下图所示的错误情况——ArcMap软件左侧图层列表中的每一个图层名称前都带有一个红色的感叹号,且在ArcMap软件右侧的地图显示区域也不包含任何图层。

  出现这种问题的原因在于,ArcGIS中的.mxd地图文档文件虽然含有各类图层,但其实际上仅仅包含了对这些图层的引用,而非图层数据本身;图层数据还是存储在其各自的.shp文件或地理数据库中。因此,一旦我们导入一个新的.mxd地图文档文件(例如从其他电脑中拷贝过来的一个.mxd地图文档文件),就可能导致ArcMap软件虽然知道这个.mxd地图文档文件应该包含有哪些图层(即可以显示图层数量与图层名称),但是这些图层的具体数据ArcMap软件没有办法找到(即在图层名称左侧出现红色感叹号)。

  针对这一情况,其解决办法也是很简单的。首先,我们需要保证当前电脑中含有.mxd地图文档文件所涉及到的全部图层的数据文件(即其各自的.shp文件或地理数据库);随后,在出现红色感叹号的图层名称处右键,选择“Data”→“Repair Data Source...”选项。

  接下来,在弹出的“Data Source”窗口中,找到当前图层对应的其自身的数据文件。例如,我刚刚是在测量标识1_mxd这个图层上右键的,那么我就需要在这个窗口中找到其对应的数据文件——测量标识1_mxd.shp,并单击“Add”即可。

  随后,可以看到测量标识1_mxd这个图层已经不再显示红色感叹号,且右侧亦可以正常显示其具体地图。

  这里还有一点需要注意,由上图可以看出,我们尽管仅对测量标识1_mxd这一个图层进行了上述操作,但是整个.mxd地图文档文件所包含的三个图层都已经可以正常显示了。这是因为这三个图层的自身数据都存储在同一个路径下(在同一个文件夹里),因此当我们对.mxd地图文档文件其中的任何一个图层进行上述操作时,ArcMap软件会自动将其他同一路径下的图层也匹配起来,从而使得.mxd地图文档文件的全部图层一次性都完成了匹配。

  如下图所示,可以看到刚刚我们在弹出的“Data Source”窗口中不仅包含了测量标识1_mxd这个图层的数据文件测量标识1_mxd.shp,同时还包含了.mxd地图文档文件中另一个图层测量点(带经纬度)的数据文件测量点(带经纬度).shp

  再如下图所示,可以看到同样是在同一路径下,还包含了.mxd地图文档文件中第三个图层(就是这个名字很长的.bmp文件)的数据文件。

  因此,我们只需要对上述.mxd地图文档文件中的一个图层执行操作,剩余两个图层都会自动匹配。当然,如果一个.mxd地图文档文件中的图层数据存储在不同的文件夹下,那么就没有办法实现一次性匹配了,有多少个文件夹就至少需要执行上述操作多少次。

  此外,我们可以通过两种办法来避免每一次打开新的.mxd地图文档文件就出现红色感叹号、需要手动匹配数据的情况。

  首先,第一种方法是在ArcMap软件上方选择“Customize”→“ArcMap Options...”选项。

  随后,在弹出的“ArcMap Options”窗口中选择“General”一栏,并将“Make relative paths the default for new map documents”这一项选中。

  通过这样的方式,ArcMap软件在今后保存.mxd地图文档文件时,都会自动将其所包含图层的自身数据的相对存储路径记录下来;这样子在其他电脑打开.mxd地图文档文件文件时,ArcMap软件就可以依据这个相对存储路径自动匹配图层数据,就不用我们通过上述操作来手动匹配了。这一种方法是一劳永逸的,今后不论是哪一个.mxd地图文档文件,都会自动存储图层数据的相对路径。

  此外,还有一种方法,就是在要保存.mxd地图文档文件时,选择“File”→“Map Document Properties...”选项。

  在弹出的“Map Document Properties”窗口中,选择将“Store relative pathnames to data sources”这一项选中。

  这一方法和前述第一种方法的原理一致,只不过第一种方法是让ArcMap软件在今后保存所有的.mxd地图文档文件时默认存储相对路径,第二种方法是仅仅针对当前这一.mxd地图文档文件保存相对路径;因此,推荐大家直接用第一种方法来实现。

ArcMap的mxd文件没有数据、显示感叹号怎么办?的更多相关文章

  1. 用ArcMap打开MXD文件报One or more layers failed to draw错误!

    错误信息: One or more layers failed to draw: FDO error: 0General function failure [PW_X]参数不足,期待是 1. 原因: ...

  2. 用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表

    用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表 下面的内容的实验环境我是在SQLSERVER2005上面做的 之前在园子里看到两篇文章<C# 读取纯真 ...

  3. 地图源改变之后mxd文件打开很慢的问题

    在使用ArcGIS开发电子地图程序时,有时候需要更换服务器地址,这时打开MXD文件就会非常慢,一直没有找到有效的方法,下面是从网上搜到的方法,还没有验证,下次再碰到这个问题的时候,验证一下: (以下方 ...

  4. WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)

    简单的Demo,用于了解WebAPI如何同时接收文件及数据,同时提供HttpClient模拟如何同时上传文件和数据的Demo,下面是HttpClient上传的Demo界面 1.HttpClient部分 ...

  5. 远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像

    远程控制编写之屏幕传输  MFC实现  屏幕截图 发送bmp数据 显示bmp图像: 一 : 首先要了解bmp图像的结构 详情请看我转载的一篇文章http://blog.csdn.net/hnust_x ...

  6. 不带插件 ,自己写js,实现批量上传文件及进度显示

    今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...

  7. Matlab文件和数据的导入与导出

    ref: https://blog.csdn.net/zengzeyu/article/details/72530596 Matlab文件和数据的导入与导出 2017年05月19日 15:18:35  ...

  8. python实现socket上传下载文件-进度条显示

    在python的socket编程中,可以实现上传下载文件,并且在下载的时候,显示进度条,具体的流程如下图所示: 1. 服务器端代码如下: [root@python 519]# cat server.p ...

  9. Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)

    ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...

  10. Android使用文件存储数据

    Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即 ...

随机推荐

  1. NC22593 签到题

    题目链接 题目 题目描述 恭喜你找到了本场比赛的签到题! 为了让大家都有抽奖的机会,只需要复制粘贴以下代码(并且稍微填下空)即可 AC: (我超良心的) #include <algorithm& ...

  2. OGP协议的使用

    OGP协议是一套Metatags的规格,用来标注页面,告诉我们你的网页快照.帮助社交app高效并准确的获取网页中的核心链接.标题.主图.正文摘要等信息,使得该网页在社交分享中有更好的展现体验. 如果网 ...

  3. 对称加密算法汇总:AES DES 3DES SM4 java 实现入门

    密码的世界 如果你是黑帮老大,平时和手下沟通,如何保证自己的信息安全呢? 在神探夏洛克的第一季中,就讲述了一个如何侦破黑帮的加密交流的故事. 这种密码利用的是密码字典. 密码本身可以是一本书,比如常见 ...

  4. 【Unity3D】分离路面导航

    1 前言 ​ 导航系统中介绍了导航的基本用法,但是不能解决分离路面导航问题.如下图,胶囊体需要导航到立方体位置,但是路面不连续,烘焙(Bake)导航网格后,断开处也没有导航网格,因此,胶囊体导航到分离 ...

  5. Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

    写在开头 队列是Java中的一个集合接口,之前的文章已经讲解了List和Set,那么今天就来唠一唠它吧.队列的特点:存储的元素是有序的.可重复的. 队列的两大接口Queue vs Deque Queu ...

  6. Java并发编程实例--4.控制线程打断

    Java提供了InterruptedException异常,当我们检测到线程被打断时可以抛出并在run()方法中进行捕捉. 本例中,我们将开发一个程序以实现根据文件名称在指定文件夹(包括其子目录)中搜 ...

  7. C#-SendKeys方法的使用

    模拟键盘CTRL+S 的输入 using System; using System.Collections.Generic; using System.Diagnostics; using Syste ...

  8. 深入理解Go语言(08):sync.WaitGroup源码分析

    一.sync.WaitGroup简介 1.1 sync.WaitGroup 解决了什么问题 在编程的时候,有时遇到一个大的任务,为了提高计算速度,会用到并发程序,把一个大的任务拆分成几个小的独立的任务 ...

  9. [BUUCTF][WEB][极客大挑战 2019]Upload 1

    打开靶机url,看到一个页面可以上传文件 上传一个图片试一下,发现上传的路径是 http://a7661b03-4852-41de-9ea4-d48c47cb50f0.node4.buuoj.cn:8 ...

  10. python模块Configparser读取 ini(cfg,txt)等配置文件

    一个ini文件的组成: 一个ini文件是由多个section组成,每个section中以key=vlaue形式存储数据: 示例 # 安装 pip install ConfigParser # 1.导包 ...