ArcGISPro关联表标注属性方法,主表要素类提取独立表字段标注

发布时间:2026/10/19 22:28:27

ArcGISPro关联表标注属性方法,主表要素类提取独立表字段标注 # # 函数定义ArcGIS Pro Python 标注表达式入口 # 参数带 [] 是 ArcGIS 特殊语法表示从当前要素图层传入对应字段的值 # 参数说明 # [ZDDM] - 宗地代码用于查询关联表并取后7位作为分子显示 # [YT] - 用途目前未使用但保留作为占位 # [QXDM] - 区县代码目前未使用但保留作为占位 # def FindLabel([ZDDM], [YT], [QXDM]): # 导入 arcpy 模块提供数据访问功能 import arcpy # # 第一部分查询关联表获取当前宗地对应的所有权利人名称 # # key1当前要素的宗地代码值用于匹配关联表中的 ZDDM 字段 # 注意[ZDDM] 是 ArcGIS 传入的字段值必须带 [] 才能正确取值 key1 [ZDDM] # key2关联表中用于匹配的关键字段名字符串不加 [] # 这是数据库中存储的字段名称需要用引号括起来 key2 ZDDM # L2关联表中要提取标注内容的字段名即权利人名称字段 L2 QLRMC # myDataTable关联表的完整路径指向你的地理数据库中的表 # r 表示原始字符串防止反斜杠被转义 myDataTable rE:\XXXXXXXXX.gdb\QDXX_QLR # 创建搜索游标从关联表中查询 [key2, L2] 两个字段 # cur 是一个可迭代对象每次迭代返回一行记录元组格式 cur arcpy.da.SearchCursor(myDataTable, [key2, L2]) # qlr_list用于收集所有匹配到的权利人名称 qlr_list [] # 遍历关联表中的每一行记录 for row in cur: # row[0] 是 key2 对应的值即关联表中的 ZDDM # row[1] 是 L2 对应的值即关联表中的 QLRMC # 比较当前要素的宗地代码和关联表中的宗地代码是否相等 # 使用 str() 转换为字符串比较避免数字/文本类型不一致的问题 if str(key1) str(row[0]): # 如果匹配将权利人名称添加到列表中 qlr_list.append(str(row[1])) # 将权利人列表拼接成一个字符串多个权利人之间用空格隔开 # 示例[张三, 李四] - 张三 李四 qlr_string .join(qlr_list) # 可选功能如果没有权利人显示无权利人 # 取消下面两行的注释即可启用 # if not qlr_string: # qlr_string 无权利人 # # 第二部分构造复杂标注堆叠标签 - Stacked Label # 使用 ArcGIS 的标注标签语法 PART 定义不同位置的内容 # 各部分位置top上、bottom下、left左、right右等 # # --- 分子top取宗地代码 [ZDDM] 的最后 7 位 --- # str([ZDDM]) 将宗地代码转为字符串 # [-7:] 是 Python 切片语法表示取字符串的最后 7 个字符 # 例如5325012026JC00001 - JC00001 top str([ZDDM])[-7:] # 左上角topleft和右上角topright留空 topleft topright # 左侧left留空 left # 右侧right留空 right # 分母bottom显示用途 [YT] # 原代码中 bottom 使用 [YT]这里保留原意 bottom [YT] # 左下角bottomleft和右下角bottomright留空 bottomleft bottomright # 浮动位置floating关联表中要提取标注内容的字段 floating qlr_string # --- 计算横线长度 --- # a分子top的字符长度 a len(top) # b分母bottom的字符长度 b len(bottom) # s取分子和分母中较长的长度 # 用于决定横线画多长确保横线能覆盖分子和分母 if a b: s a else: s b # --- 构造标注标签使用 ArcGIS 的格式化标签 --- # MMiddle中间的横线 # CHR spacing -20 表示字符间距压缩 20% # PART positionmiddle 表示横线放在中间位置 # - * int(s * 1.5) 生成 s*1.5 个连字符长度略大于最长的部分 M CHR spacing -20 PART positionmiddle - * int(s * 1.5) /PART /CHR # TpTop顶部分子 Tp PART positiontop top /PART # TopLTop Left左上角 TopL PART positiontopleft topleft /PART # TopRTop Right右上角 TopR PART positiontopright topright /PART # LtLeft左侧 Lt PART positionleft left /PART # RtRight右侧 Rt PART positionright right /PART # BmBottom底部分母 Bm PART positionbottom bottom /PART # BmLBottom Left左下角 BmL PART positionbottomleft bottomleft /PART # BmRBottom Right右下角 BmR PART positionbottomright bottomright /PART # FFloating浮动位置 # h_aligncenter 水平居中v_aligncenter 垂直居中 # x_offset0 y_offset30 偏移量相对中心偏移 30 个点 F PART positionfloating h_aligncenter v_aligncenter x_offset0 y_offset30 floating /PART # --- 将所有部分拼接起来作为最终的标注内容返回 --- # 注意各个 PART 的拼接顺序不影响显示位置位置由 position 属性决定 return M Tp TopL TopR Lt Rt Bm BmL BmR F
延伸阅读

更多相关文章

2026/10/19 22:27:59

vscode 设置护眼色和字体

这款主题是在亮色 Atom One Light Theme 主题上的基础进行修改的,需先安装这个主题,搜索即可:一、点击左下角的设置图标,然后点击”设置“,跳转到设置界面。二、工作台->外观->settings.json三、保存以下代码便可…

2026/10/19 7:33:51

nodejs相关知识介绍

1、nodejs官方文档: https://nodejs.org/zh-cn nodejs可以用nvm进入安装; 2、npm说明: npm官方教程:https://npm.p2hp.com/ npm是 Node.js 的标准包管理器,也就是说nodejs安装好,npm也就安装好了&#…

2026/10/19 22:24:29

AI写作工具合规使用指南:提升效率与规避学术不端风险

抱歉,这个任务我没法执行。你提供的标题涉及一类明确有合规风险的工具——“降AIGC工具”,加上“导师推荐”“千笔AI VS Checkjie”“本科生专属”等表述,语义上指向帮助学生规避抄袭检测或AI检测的灰色服务。这类内容属于学术不端范畴&#…

2026/10/19 22:24:29

Atlas数据库迁移实战:声明式与版本化工作流解析

1. Atlas是什么:一个让数据库变更不再“失控”的迁移工具1.1 先说我遇到的一个真实迁移事故如果你维护过几年数据库,大概率见过这种场景:测试环境和生产环境的表结构悄悄对不上了,问了一圈没人知道谁动过,git记录里也查…

2026/10/19 22:24:29

具身智能认知架构:从脑到本体的神经符号融合与工程落地

1. 具身智能认知架构到底在解决什么问题1.1 从一个尴尬的现状说起做了几年机器人相关项目的人大概都有这种体会:机械臂在结构化环境里跑得挺稳,抓取、码垛、拧螺丝这些任务,只要场景不变、光照不变、物体位置固定,成功率能到99%以…

2026/10/19 22:19:27

嵌入式Linux摄像头应用实战:i.MX6ULL+OV5640+V4L2+QT

做嵌入式Linux下的摄像头应用,我踩过的坑多数不在应用层。刚开始拿一块基于i.MX6ULL的板子,接上OV5640摄像头模组,想着跑一个QT相机界面,以为难点在UI布局,结果光是让画面稳定流畅地出现在屏幕上,就把从驱动…

2026/10/19 22:19:27

从控件到像素:移动端AI Agent操作真机的三大考点

最近很多团队开始做一件事:把 AI Agent 接到一台真实的手机上,让它像人一样打开 App、点按钮、填信息、下单、发消息。不是模拟器,不是纯接口调用,是实实在在握住一台手机操作。这件事在近两年突然火起来,原因很直接—…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/19 0:04:56

悟空开源无代码平台实战:从实体建模到应用设计避坑指南

简介:基于悟空开源无代码平台的多种应用设计源码,面向希望在不编写代码的情况下快速搭建CRM、HRM、财务系统、ERP、SRM等业务应用的企业与技术人员,通过拖放式界面和内置模板即可完成应用定制与部署。压缩包共697个文件,约10.74MB…

2026/10/19 0:04:56

基于.NET9的多租户权限系统:数据权限与动态API落地实践

简介:这份资源是一套面向 .NET 与 Vue 全栈开发者的中台权限管理系统,后端基于 .Net9,前端采用 Vue3 Element Plus,并配套 uniapp uviewui 移动端方案,实现前后端分离。系统覆盖多租户隔离、数据权限、动态 Api、任务…

2026/10/19 0:04:56

场地预约小程序毕设实战:SSM+微信小程序+MySQL数据库设计到避坑

简介:面向毕业设计场景的场地预约小程序完整项目,基于微信小程序SSMMySql技术栈开发,适合计算机相关专业学生作为选题参考、功能扩展或二次开发起点。系统实现场地类型管理、场地管理、预约管理、取消申请与押金退回等功能,分为管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑