这是一个踩坑记录贴,相关的操作我还没有实现,如果有人知道我哪里搞错了,请不吝赐教,提前拜谢!
在软件上,缩放至图层
的操作简单至极,右键点击图层→单击缩放至图层就实现了。我忘记了在旧版的Arcgis中有没有批处理过这个操作,隐约是有,至少是想做来着。用python实现ArcgisPro费了我很多力气都没成功,我能想到的突破口都尝试遍了,只能暂时投降。
目标:使用Arcpy设置多个地图的视角缩放至某图层
特殊:因为我的地图使用了定义查询
,这一点给我造成了较大的障碍(唯一一次跑通的情况,只缩放视角到了,图层的全范围)
方法:
1、map.defaultCamera.setExtent(arcpy.Describe(cameraLayer).extent)
能跑通但是功能不符合预期
文档网址是:https://pro.arcgis.com/zh-cn/pro-app/latest/arcpy/functions/describe.htm
具体来说map.defaultCamera.setExtent()
是设置设置视角的(存疑,我没用仔细查看);arcpy.Describe()
是获取图层属性的;arcpy.Describe(cameraLayer).extent
是获取图层范围的。
勉强跳转了视角,但是对于设置了定义查询
的图层,视角还是未设置定义查询
的情况。
2、extent = map.getLayerExtent(layer, False, True)
跑不通
在map.defaultCamera.setExtent()
的基础之上,我感觉只要获取正确的边界范围就可以了。所以我查看了很多地图文档,把目光放在了.getLayerExtent()
函数上,我不知道它的上层是什么,设置Map会报错。不是Map而是MapView,可是获取MapView也会报错。官方文档的网址为:https://pro.arcgis.com/zh-cn/pro-app/latest/arcpy/mapping/mapview-class.htm。
它的属性让我感觉有希望。
(未完待续!)