首页 > 其他分享 >ArcGIS打开mxd地图后无内容且出现红色感叹号的解决方法

ArcGIS打开mxd地图后无内容且出现红色感叹号的解决方法

时间:2023-09-19 22:04:29浏览次数:87  
标签:地图 文档文件 ArcGIS ArcMap 感叹号 软件 mxd 图层

  本文介绍在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地图文档文件保存相对路径;因此,推荐大家直接用第一种方法来实现。

标签:地图,文档文件,ArcGIS,ArcMap,感叹号,软件,mxd,图层
From: https://blog.51cto.com/fkxxgis/7529616

相关文章

  • arcgis for js4.x自定义Graphic数组创建FeatureLayer添加标注
    varpoint=[{ "geometry":{ "x":116.820688, "y":33.974053, "spatialReference":{ "wkid":4326 } }, "......
  • arcgis api for javascript 4.x, 删除绘制的点、线、面
    1、在视图mapView上添加的点线面//删除所有mapView.graphics.removeAll();//删除一个constpointGraphic=newGraphic({geometry,symbol})mapView.graphics.remove(pointGraphic);//删除多个mapView.graphics.removeMany([pointGraphic,polylineGraphic]);2、G......
  • ArcGIS API for JS4.8绘制点、线、面、矩形、圆
    实现代码使用ArcGISAPIforJS4.8绘制点(Point)、线(Polyline)、面(Polygon)、矩形(Rectangle)、圆(Circle),使用Draw绘制,具体代码如下:<!DOCTYPEhtml><html><head><metacharset="utf-8"/><title>ArcGISdemo</title><linktyp......
  • ArcGIS10.8 安装
    一、下载ArcGIS10.8下载链接:ttps://pan.baidu.com/s/1TnTv0p9mYQVwlGMpfZb15A 提取码:kjgh下载后如下所示:解压: 二、安装安装视频教程:https://www.bilibili.com/video/BV18a411t75F/?spm_id_from=333.788.recommend_more_video.9&vd_source=f13a40031429e4d0c1a36af1......
  • 关于 Angular 应用里 Rxjs filter 操作符内的双重感叹号的用法
    看下列这段出现在AngularComponent内的代码:protecteduserCostCenters$:Observable<CostCenter[]>=this.userCostCenterService.getActiveCostCenters().pipe(filter((costCenters)=>!!costCenters));这段Angular组件代码涉及到Observable和RxJS操作......
  • 回归克里格、普通克里格插值在ArcGIS中的实现
      本文介绍基于ArcMap软件,实现普通克里格、回归克里格方法的空间插值的具体操作。目录1背景知识准备2回归克里格实现2.1采样点与环境变量提取2.2子集要素划分2.3异常值提取2.4土壤有机质含量经典统计学分析2.5回归方程求取2.6残差提取2.7残差普通克里格求解2.8土壤有......
  • keil5 jlink调试时断点为灰色感叹号
    使用jlinkswd连接调试时,打断点进入调试时,断点变为灰色的感叹号问题一:代码优化等级默认或者-O0问题而:调试信息总结:编译参数要有"-g"和"-O0"......
  • ArcGIS Map SDK FeatureLayer点击查询要素与弹框展示
    ArcGISMapSDKFeatureLayer点击查询要素与弹框展示代码如下:<htmllang="en"><head><metacharset="utf-8"/><metaname="viewport"content="initial-scale=1,maximum-scale=1,user-scalable=no&quo......
  • ArcGIS计算某个点落在遥感影像中的行数与列数
      本文介绍在ArcMap软件中,求取点要素在栅格图像中所处行号、列号的方法。  如下图所示,我们已知一张栅格图像以及其上的几个点要素;本文就以此数据为例,介绍获取点要素所处行列号的方法。  其中,本文所用的栅格图层与点要素图层都不含有任何地理参考信息。如下图所示,其为栅格......
  • css实现圆形里面感叹号
    .circle-exclamation{width:20px;height:20px;border-radius:50%;display:inline-block;background-color:#eb4d4b;}.circle-exclamation::before{content:"!";font-size:16px;color:#fff;line-height:2......