发布时间:2026/8/26 14:13:35
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/8/26 14:08:19

vscode 设置护眼色和字体

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

2026/8/26 14:08:19

nodejs相关知识介绍

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

2026/8/26 15:08:51

豆包 LeetCode 3 无重复字符的最长子串 JavaScript实现

LeetCode 3 无重复字符的最长子串 JavaScript函数签名:/**- param {string} s - return {number} */ 滑动窗口,数组记录字符最近下标,时间 O(n)javascript /*** param {string} s* return {number}*/ var lengthOfLongestSubstring funct…

2026/8/26 15:08:51

豆包 LeetCode 3 无重复字符的最长子串 Rust实现

LeetCode 3 无重复字符的最长子串函数签名: pub fn length_of_longest_substring(s: String) -> i32 最优解法:滑动窗口,用数组记录字符最近一次下标,O(n)时间,O(1)空间,适配ASCII字符。rust pub fn…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 0:04:32

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 1:19:35

JSON总结

JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C#、Java、JavaScr…

2026/8/26 1:19:35

保存连接sse 是什么原理,为什么不会一直请求

“保持连接”用的是 SSE(Server-Sent Events),本质是一个没有马上结束的 HTTP 请求。 过程是: 拷贝机发送一次请求: GET /api/code-sync/events服务器返回: Content-Type: text/event-stream但不关闭响应&…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…