arcgis mxd 文档

最近关于ArcGIS的地图文档MXD慢的问题比较多,下面就对MXD的一点建议给大家分享!

关于地图文档MXD
地图文档其实是一个很好的对象,这个对象可以将我们配置好的地图包括(图层、符号、标注、比例尺、显示范围等)信息进行保存,然后我们使用MXD对上面的要求进行统一的管理,而且在我们发布地图服务时也需要使用该对象(虽然有MSD)。特别是在制图方面,地图文档的使用就更广泛了。

关于地图文档MXD的慢(以下都是数据源为ArcSDE为例)
一般用户反映我打开地图文档MXD比较慢,那么这个慢我们可以分两部分:
1:打开地图文档MXD的时候慢,也就是直接使用ArcMap双击MXD,那么在显示ArcMap的logo的时候,就非常慢
2:已经打开了ArcMap,但是加载相关图层,符号渲染等比较慢

再次强调一下,如果发现自己的ArcMap、ArcSDE、ArcGIS Server凡是使用到了地图文档慢的,请首先自觉的根据自己的相关版本将相关的补丁打全再往下看,因为这个很重要........

----------------------------------------------------------------------------------
对问题1的情况需要我们注意的:
1:服务器的防火墙是否关闭,或者5151端口是否禁用
2:服务器的IP是否修改
3:配置好的MXD的数据源是否改变
4:配置好的MXD的数据源的某些图层是否被删除
5:网络问题


典型问题:我在我本机配置好的MXD,怎么打开都很快,但是拷贝到其他机器就很慢?
解答:如果用户的ArcSDE连接为服务连接,应该不会出现该问题,但是仍然有用户反映,这个就根据用户的实际情况来做判断了。
如果用户的ArcSDE为直连,拷贝到其他用户打开肯定会有问题,因为直连需要netservicename,那么不同的机器可能配置的netservicename不一样,那么会有长时间打开,数据源为!号的现象,这也正常。

典型问题:我在我本机配置好的MXD,为什么我做了一些数据图层的删除,我的MXD打开就很慢?

解答:因为用户删除的是数据库内的图层,但是我们配置的MXD里面仍然保存了删除前图层的信息,那么加载图层会首先遍历MXD里面保存的信息,对找不到的图层可能会进行多次的查询等,所以会很慢。那么我们可以使用打开MXD后,将TOC里面的无效信息清空,然后save as copy一个新的MXD即可。


如果是连接其他服务器,加载的时候长时间未响应,可以直接将网线拔掉!这样会加快打开MXD的效率。

--------------------------------------------------------------------------------
对问题2的情况需要我们注意的:
1:配置好的MXD包含图层的多少
2:所有图层的数据量大小
3:所有图层的空间索引是否创建和有效使用
4:是否使用了高级制图方法(maplex标注、Representation)
5:是否有版本数据,进行版本压缩



因为如果你的这个MXD包含好多图层加载,而且使用了比较高级的渲染方法,都会导致在加载图层时候比较慢的情况,有些时候是正常的,可能根据你的服务器和客户端的配置情况才能优化了。

但是在我们加载多个图层的时候,ArcMap的左下角会有一个“Drawing...(某个要素类名称)”,那么我们根据这个来判断在MXD加载图层的过程中到底是哪个图层出现问题。

典型问题:在我在某个客户的一个现场问题,也是打开MXD的时候,针对用户的一个图块图层,加载就非常慢,这个图层大概有千万条记录,但是没有做任何符号的渲染,从这个情况可以看出肯定是这个图层的索引问题,或者没有使用空间索引,或者空间索引无效导致。
解决方法:重建空间索引,分析数据。


MXD Doctor 
那么如果你的MXD有问题,就打不开怎么办?
ArcGIS提供了一个比较好的工具可以进行检查。MXD Doctor 是独立的应用程序,位于C:\Program Files (x86)\ArcGIS\Desktop10.0\Tools。该工具可用于分析已损坏的 .mxd 文件。根据分析结果,可将已损坏的 .mxd 文件中所包含的实体复制到新的或现有 .mxd 文件中。

MXD Doctor 主要用于从已损坏的 .mxd 文件中提取有效实体。但是,此工具也可以通过将一个 .mxd 文件中的内容复制到另一个 .mxd 文件的方式,对有效的 .mxd 文件中的实体进行检索。此工具还可用于从已损坏的 ArcScene (.sxd) 或 ArcGlobe (.3dd) 文档中提取 VBA 项目。只有将现有文档作为目标文档时,此功能才有效。启动 MXD Doctor 工具之前,需要先使用 ArcScene 或 ArcGlobe 来创建一个空白目标文档。要在 MXD Doctor 对话框中指定源文档和目标文档的文件名,可浏览至正确的文件夹并输入文档的文件名(因为浏览器支持 .mxd 和 .mxt 文件)。
相关参考:http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/000300000019000000/


文档碎片整理程序工具(DocDefragmenter)
ArcGIS 文档碎片整理程序工具位于C:\Program Files (x86)\ArcGIS\Desktop10.0\Tools,可对 .mxd 文件内存储的数据进行碎片整理,以尽可能减小文件大小。如果 .mxd 文件过大,此工具将十分有用。此工具也可以对 .sxd、.3dd 和 .mxt 文件进行碎片整理。

您可以对单个文档文件、特定文件夹中的所有 ArcGIS 文档或文件树中某点下的文件夹内的所有文档进行碎片整理。对于经过碎片整理的文档,有不同的放置选项可供选择。默认情况下,会在原始文件所在的文件夹中创建一个新文档文件,而新文件的名称与原始文件相同,只是在后加上了 _Defrag 后缀。例如,如果对 JoshuaTreeNP.mxd 进行碎片整理,则新文件名为 JoshuaTreeNP_Defrag.mxd。
相关参考:http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/000300000017000000/

ArcMAP MXD Redirect Data Sources
该工具只支持9.2/9.3,主要对用户的数据源破坏问题进行修复和替换。
相关参考:http://arcscripts.esri.com/details.asp?dbid=14456

mxdpefstat
MXDPERFSTAT (ArcGIS 10 和 93)可以帮助诊断典型的 MXD 文档的性能问题,例如
  • Inefficient scale dependency 
  • Slow symbology 
  • Large features 
  • Projection on the fly 
  • Potential database tuning 

下载地址:http://arcscripts.esri.com/details.asp?dbid=16931

该工具是一个命令行工具,执行完毕之后,可以得到分析结果,可以看到每个图层的刷新时间,及图层显示时各阶段的时间,如果有问题,会在Recommendations里面给出建议,如下所示:

[html]  view plain copy print ?
  1. C:\Users\Administrator\Downloads\AS16931\mxdpefstat>mxdperfstat10prerelease -mxd c:\1.mxd -scale 250000 -width 1920 -heght 1028  
  2. 2012-3-14 9:54:40 Checking License  
  3. License: esriLicenseProductCodeArcInfo  
  4. 2012-3-14 9:54:44 TestParams.SetParams check argsValid  
  5. 2012-3-14 9:54:44 TestParams.SetParams ValidateMxd Start  
  6. 2012-3-14 9:54:44 TestParams.SetParams ValidateMxd Finish  
  7. 2012-3-14 9:54:44 new MainForm()  
  8. 2012-3-14 9:54:44 InitializeComponent()  
  9. 2012-3-14 9:54:45 InitializeComponent() Completed  
  10. 2012-3-14 9:54:45 testParams.MxdDocumentPath  
  11. 2012-3-14 9:54:45 mainForm.TestParams = testParams;  
  12. 2012-3-14 9:54:45 Application.Run(mainForm)  
  13. 2012-3-14 9:54:50(IMapControl3)axMapControl1.Object  
  14. 2012-3-14 9:54:50axMapControl1.LoadMxFile(m_mapDocumentName)  
  15. 2012-3-14 9:55:02 MainForm: RunTest(ref m_activeView)  
  16. Starting test  
  17. 2012-3-14 9:55:03MainForm: RunTest() Started  
  18. GetVisibleLayers Scale=256972.111553785  
  19. Name=SDE.县级居民地point MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  20. ADDED Layer=SDE.县级居民地point  
  21. Name=SDE.地市级以上居民地4m MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  22. ADDED Layer=SDE.地市级以上居民地4m  
  23. Name=SDE.首都和省级行政中心4m MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  24. ADDED Layer=SDE.首都和省级行政中心4m  
  25. Name=SDE.地级行政界线polyline MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  26. ADDED Layer=SDE.地级行政界线polyline  
  27. Name=SDE.五级河流polyline MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  28. ADDED Layer=SDE.五级河流polyline  
  29. Name=SDE.主要铁路4m MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  30. ADDED Layer=SDE.主要铁路4m  
  31. Name=SDE.主要公路4m MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  32. ADDED Layer=SDE.主要公路4m  
  33. Name=SDE.国界与省界4l MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  34. ADDED Layer=SDE.国界与省界4l  
  35. Name=SDE.三级以上河流4l MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  36. ADDED Layer=SDE.三级以上河流4l  
  37. Name=SDE.国界4l MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  38. ADDED Layer=SDE.国界4l  
  39. Name=SDE.四级河流polyline MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  40. ADDED Layer=SDE.四级河流polyline  
  41. Name=SDE.一级河流4l MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  42. ADDED Layer=SDE.一级河流4l  
  43. Name=SDE.县级行政界线line MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  44. ADDED Layer=SDE.县级行政界线line  
  45. Name=SDE.国界与省界4p MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  46. ADDED Layer=SDE.国界与省界4p  
  47. Name=SDE.三级以上河流4p MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  48. ADDED Layer=SDE.三级以上河流4p  
  49. Name=SDE.国界4p MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  50. ADDED Layer=SDE.国界4p  
  51. Name=SDE.一级河流4p MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  52. ADDED Layer=SDE.一级河流4p  
  53. Name=SDE.县级行政界线poly MinimumScale=0MaximumScale=0Valid=TrueVisible=True  
  54. ADDED Layer=SDE.县级行政界线poly  
  55. 2012-3-14 9:55:04 Testing scale=250000  
  56.          layer1 SDE.县级居民地point  
  57. 2012-3-14 9:55:05Cursor features: layer=SDE.县级居民地point features=4  
  58.         layer=SDE.县级居民地point Vertices=0 Features=0  
  59.         LayerVertices=0  
  60.          layer2 SDE.地市级以上居民地4m  
  61. 2012-3-14 9:55:06Cursor features: layer=SDE.地市级以上居民地4m features=0  
  62.         layer=SDE.地市级以上居民地4m Vertices=0 Features=0  
  63.         LayerVertices=0  
  64.          layer3 SDE.首都和省级行政中心4m  
  65. 2012-3-14 9:55:06Cursor features: layer=SDE.首都和省级行政中心4m features=0  
  66.         layer=SDE.首都和省级行政中心4m Vertices=0 Features=0  
  67.         LayerVertices=0  
  68.          layer4 SDE.地级行政界线polyline  
  69. 2012-3-14 9:55:07Cursor features: layer=SDE.地级行政界线polyline features=0  
  70.         layer=SDE.地级行政界线polyline Vertices=0 Features=0  
  71.         LayerVertices=0  
  72.          layer5 SDE.五级河流polyline  
  73. 2012-3-14 9:55:08Cursor features: layer=SDE.五级河流polyline features=1  
  74.         layer=SDE.五级河流polyline Vertices=109 Features=1  
  75.         LayerVertices=109  
  76.          layer6 SDE.主要铁路4m  
  77. 2012-3-14 9:55:08Cursor features: layer=SDE.主要铁路4m features=0  
  78.         layer=SDE.主要铁路4m Vertices=0 Features=0  
  79.         LayerVertices=0  
  80.          layer7 SDE.主要公路4m  
  81. 2012-3-14 9:55:09Cursor features: layer=SDE.主要公路4m features=0  
  82.         layer=SDE.主要公路4m Vertices=0 Features=0  
  83.         LayerVertices=0  
  84.          layer8 SDE.国界与省界4l  
  85. 2012-3-14 9:55:10Cursor features: layer=SDE.国界与省界4l features=2  
  86.         layer=SDE.国界与省界4l Vertices=374 Features=2  
  87.         LayerVertices=374  
  88.          layer9 SDE.三级以上河流4l  
  89. 2012-3-14 9:55:11Cursor features: layer=SDE.三级以上河流4l features=3  
  90.         layer=SDE.三级以上河流4l Vertices=67 Features=3  
  91.         LayerVertices=67  
  92.          layer10 SDE.国界4l  
  93. 2012-3-14 9:55:11Cursor features: layer=SDE.国界4l features=0  
  94.         layer=SDE.国界4l Vertices=0 Features=0  
  95.         LayerVertices=0  
  96.          layer11 SDE.四级河流polyline  
  97. 2012-3-14 9:55:12Cursor features: layer=SDE.四级河流polyline features=1  
  98.         layer=SDE.四级河流polyline Vertices=53 Features=1  
  99.         LayerVertices=53  
  100.          layer12 SDE.一级河流4l  
  101. 2012-3-14 9:55:13Cursor features: layer=SDE.一级河流4l features=1  
  102.         layer=SDE.一级河流4l Vertices=65 Features=1  
  103.         LayerVertices=65  
  104.          layer13 SDE.县级行政界线line  
  105. 2012-3-14 9:55:14Cursor features: layer=SDE.县级行政界线line features=15  
  106.         layer=SDE.县级行政界线line Vertices=724 Features=15  
  107.         LayerVertices=724  
  108.          layer14 SDE.国界与省界4p  
  109. 2012-3-14 9:55:14Cursor features: layer=SDE.国界与省界4p features=2  
  110.         layer=SDE.国界与省界4p Vertices=7046 Features=2  
  111.         LayerVertices=7046  
  112.          layer15 SDE.三级以上河流4p  
  113. 2012-3-14 9:55:15Cursor features: layer=SDE.三级以上河流4p features=0  
  114.         layer=SDE.三级以上河流4p Vertices=0 Features=0  
  115.         LayerVertices=0  
  116.          layer16 SDE.国界4p  
  117. 2012-3-14 9:55:16Cursor features: layer=SDE.国界4p features=1  
  118.         layer=SDE.国界4p Vertices=46220 Features=1  
  119.         LayerVertices=46220  
  120.          layer17 SDE.一级河流4p  
  121. 2012-3-14 9:55:17Cursor features: layer=SDE.一级河流4p features=0  
  122.         layer=SDE.一级河流4p Vertices=0 Features=0  
  123.         LayerVertices=0  
  124.          layer18 SDE.县级行政界线poly  
  125. 2012-3-14 9:55:18Cursor features: layer=SDE.县级行政界线poly features=8  
  126.         layer=SDE.县级行政界线poly Vertices=2848 Features=8  
  127.         LayerVertices=2848  
  128. 2012-3-14 9:55:19 RunTest:LoadXML  
  129. 2012-3-14 9:55:19 RunTest: ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown()  
  130. 2012-3-14 9:55:19 RunTest: ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown() Completed  
  131. 2012-3-14 9:55:19 RunTest:Application.Exit()  
  132. 2012-3-14 9:55:19 After RunTest:Application.Exit()  
  133. 2012-3-14 9:55:19 Dspose: ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown()  
  134. 2012-3-14 9:55:19 Dspose: ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown() Completed  

我们在该目录下得到一个XML文件

MxdPerfStat

2012-3-14 9:55:19
c:\1.mxd
layerCount= 18
Unknown
esriDecimalDegrees
X= 104.25 Y= 28.48 width= 1920 height= 1028


Map Display Performance (sec) for each scale
ScaleRefresh Time(sec)VisibleLayers
256,972.4318
Layer Properties
ItemAt ScaleLayer NameRefresh Time (sec)RecommendationsFeaturesVerticesLabelingGeography Phase (sec)Graphics Phase (sec)Cursor Phase (sec)DBMS CPUDBMS LIODBMS PIOSourceLayerTypeLayer Spatial ReferenceLayerQueryDef
1256,972SDE.县级居民地point.02avoid projecting on the fly;4 False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPointGCS_WGS_1984 
2256,972SDE.地市级以上居民地4m.03avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPointGCS_WGS_1984 
3256,972SDE.首都和省级行政中心4m.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPointGCS_WGS_1984 
4256,972SDE.地级行政界线polyline.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
5256,972SDE.五级河流polyline.02avoid projecting on the fly;1109False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
6256,972SDE.主要铁路4m.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
7256,972SDE.主要公路4m.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
8256,972SDE.国界与省界4l.02avoid projecting on the fly;2374False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
9256,972SDE.三级以上河流4l.02avoid projecting on the fly;367False.01.00.00.001 esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
10256,972SDE.国界4l.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
11256,972SDE.四级河流polyline.02avoid projecting on the fly;153False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
12256,972SDE.一级河流4l.03avoid projecting on the fly;165False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
13256,972SDE.县级行政界线line.03avoid projecting on the fly;15724False.02.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolylineGCS_WGS_1984 
14256,972SDE.国界与省界4p.05avoid projecting on the fly;27,046False.03.01.02.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolygonGCS_WGS_1984 
15256,972SDE.三级以上河流4p.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolygonGCS_WGS_1984 
16256,972SDE.国界4p.26simplify geometry: vertices fetched=46220; avoid projecting on the fly;146,220False.25.00.12.001 esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolygonGCS_WGS_1984 
17256,972SDE.一级河流4p.02avoid projecting on the fly;  False.01.00.00.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolygonGCS_WGS_1984 
18256,972SDE.县级行政界线poly.03avoid projecting on the fly;82,848False.02.00.01.00  esriDBMS_Oracle,192.168.220.165,5151,sdeesriGeometryPolygonGCS_WGS_1984 

通过上面的信息,我们就可以对MXD做一个非常详细的性能评估,对我们制图,发布服务都是一个很好的参考!


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArcGIS中批量导出MXD文件可以通过使用ArcPy模块来实现。ArcPy是ArcGIS的Python站点软件包,它提供了一组工具和函数,可以用于自动化地执行各种GIS任务。 要批量导出MXD文件,首先需要创建一个Python脚本。在该脚本中,我们可以使用ListFiles函数来获取指定文件夹中的所有MXD文件的路径。然后,我们可以使用Mapping模块中的ExportToPDF函数将每个MXD文件导出为PDF文件。 以下是一个示例脚本: import arcpy import os # 设置工作环境 arcpy.env.workspace = r"C:\path\to\folder\containing\mxd\files" # 获取所有MXD文件的路径 mxd_files = arcpy.ListFiles("*.mxd") # 循环处理每个MXD文件 for mxd_file in mxd_files: # 创建MXD文档对象 mxd = arcpy.mapping.MapDocument(os.path.join(arcpy.env.workspace, mxd_file)) # 导出为PDF文件 output_pdf = os.path.join(r"C:\path\to\output\folder", os.path.splitext(mxd_file)[0] + ".pdf") arcpy.mapping.ExportToPDF(mxd, output_pdf) # 释放MXD对象 del mxd 脚本中的环境变量arcpy.env.workspace指定了包含MXD文件文件夹的路径。此后,通过调用arcpy.ListFiles函数并指定通配符“*.mxd”,我们可以获取文件夹中的所有MXD文件的路径。 然后,通过使用arcpy.mapping.MapDocument函数,我们可以创建MXD文档对象。在处理完MXD文件后,我们使用arcpy.mapping.ExportToPDF函数将MXD导出为PDF文件。将输出PDF的路径指定为目标文件夹中的与MXD文件相同的文件名。 最后,通过删除MXD对象(del mxd),我们可以释放内存并确保脚本能够继续处理下一个MXD文件。 通过运行此脚本,您可以批量导出MXD文件为PDF文件并保存在指定的输出文件夹中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值