你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
朱新颖
赞同来自:
IGraphicsContainer pGraphicsContainer = axPageLayoutControl1.GraphicsContainer; IMapFrame pMapFrame = pGraphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame; pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds; IEnvelope env = new EnvelopeClass(); env.PutCoords(111939.3058, 27729.6982, 131821.6658, 41643.6886); //地理坐标系下的坐标,即范围 pMapFrame.MapBounds = env; axPageLayoutControl1.Refresh();
countsun - 80后土管员
要回复问题请先登录或注册
2 个回复
朱新颖
赞同来自:
可以通过以下步骤:
1,获取IMapFrame;
2,将IMapFrame.ExtentType设置为esriExtentTypeEnum.esriExtentBounds;
3,自定义Envelope,将其赋予IMapFrame.MapBounds,刷新即可。
countsun - 80后土管员
赞同来自:
我自己试验了几把,三种思路解决问题。
第一种:还是导出df,手动调整了布局,比如手动调整内容列表窗口的大小,最终会影响df的extent;
还不知道怎么用程序调整内容列表窗口,也不知道df的extent自动变换的逻辑;
第二种:还是导出df的图片(一般左右留空白),用python去切这个图片。这个比较适合图片大小一致的,适用性比较窄;
第三种:导出页面布局(手工设置df的长宽等于页面布局的长宽),
arcpy.mapping.ExportToJPEG(mxd,r"G:\abc\\"+layer.name+"",resolution=500)
反正我只有横向和纵向两种情况,我就做2个mxd;我是按第三种方式解决的。
要回复问题请先登录或注册
发起人
相关问题
问题状态