免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1431|回复: 4
收起左侧

[求助] 如何用选择并显示要素?

[复制链接]

25

主题

2233

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
359
发表于 2022-10-13 10:09 | 显示全部楼层 |阅读模式
本帖最后由 sblisb 于 2022-10-13 10:38 编辑

经常要打印图纸,选择要素以1:1万比例打印出来,能有一个工具做“选择要素,平移至要素,设置比例尺为1:1万”操作吗?
设想如下:
当前mxd中,A.shp图层,选择时,条件为两个属性值:xz="输入值" and xb="输入值"
界面显示两个文本框,做为选择的参数输入

25

主题

2233

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
359
 楼主| 发表于 2022-10-13 10:39 | 显示全部楼层
还是vba适用我,vba下,平移至所选要素的代码如何写?
回复 支持 反对

使用道具 举报

25

主题

2233

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
359
 楼主| 发表于 2022-10-13 11:26 | 显示全部楼层
'选择要素
Sub SelectFeatures()

    Dim mxDoc As IMxDocument '地图文档
    Dim lyr As IFeatureLayer '要素层
    Dim sel As IFeatureSelection '选择集
    Dim filter As IQueryFilter '查询过滤器
    Dim selEvents As ISelectionEvents '???
   
    Set mxDoc = Application.Document '获取当前地图文档
    Set lyr = FindLayer(mxDoc.FocusMap, "BUILDING") '调用FindLayer函数查找图层
    Set sel = lyr '将找到的图层设为选择集
    Set filter = New QueryFilter '创建查询过滤器
    filter.WhereClause = "BDNAME ='实验楼A'" '设置where子句
    sel.SelectFeatures filter, esriSelectionResultNew, False '选中满足条件的要素
    mxDoc.activeView.PartialRefresh esriViewGeoSelection, Nothing, Nothing '绘出选中的要素
    Set selEvents = mxDoc.FocusMap '???
    selEvents.SelectionChanged '通知系统选择已经改变了

End Sub
回复 支持 反对

使用道具 举报

25

主题

2233

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
359
 楼主| 发表于 2022-10-16 15:46 | 显示全部楼层
平移至所选要素的代码如何写?
回复 支持 反对

使用道具 举报

25

主题

2233

铜板

4

好友

助理工程师

Rank: 5Rank: 5

积分
359
 楼主| 发表于 2022-10-16 21:44 | 显示全部楼层
11.JPG
在arcgis10.2中运行没问题,在arcgis10.8下,提示出错,
停在这一句 Set lyr = FindLayer(mxDoc.FocusMap, "BUILDING") '调用FindLayer函数查找图层
提示 Compile error:


Sub or Function not defined
如何解决?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表