# 属性编辑
# 属性结构编辑
# 功能说明
用以浏览及修改图层属性结构。需要注意的是:面积“mpArea”、周长“mpLength”、层号“mpLayer”属性字段无法编辑。
MapGIS中可支持的属性字段类型的详细信息如下所示:
字段类型 | 描述 | 值示例 |
---|---|---|
字符串 | 字符串类型,文本长度最大255字符 | |
字节型 | byte数据类型,值域为[-128,127] | |
布尔型 | 字段值为“true”或“false” | |
短整型 | 整数型字段,值域为[-32768,32767] | |
长整型 | 整数型字段,值域为[-2147483648,2147483647] | |
64位长整型 | 整数型字段,值域为[-9223372036854775808,9223372036854775807] | |
浮点型 | 单精度浮点型字段,有效长度8,小数位数最大6位。 | |
双精度型 | 单精度浮点型字段,有效长度8,小数位数最大13位 | |
数值型 | 精确数值类型,数据存储与显示完全一致 | |
日期型 | 日期型字段,显示格式为YY/MM/DD | 2023/2/27 |
时间型 | 时间型字段,显示格式为hh:mm:ss | 21:53:05 |
邮戳型 | 日期时间型字段,显示格式为YY/MM/DD hh:mm:ss | 2023/2/27 21:53 |
文本型 | MapGIS扩展类型,存储文本文件路径 | D:\sx\文本名.txt |
图片型 | MapGIS扩展类型,存储图片文件路径 | D:\sx\图片名.jpg |
地图型 | MapGIS扩展类型,存储地图文件路径 | D:\sx\地图名.mapx |
声音型 | MapGIS扩展类型,存储音频文件路径 | D:\sx\音频名.mp3 |
视频型 | MapGIS扩展类型,存储视频文件路径 | D:\sx\视频名.mp4 |
表格型 | MapGIS扩展类型,存储对象路径 | gdbp://MapGISLocalPlus/sample/ocls/对象类名 |
IP地址型 | MapGIS扩展类型,存储IP地址信息 | 192.186.22.111 |
定长二进制类型 | 二进制类型,存储文本、图片、音频、视频等数据 | |
二进制大对象类型 | 二进制大对象BLOB,存储文本、图片、音频、视频等数据 | |
文本大对象类型 | 字符串类型,文本长度最大可到1073741822字符 |
由于数据源限制,不同数据源下矢量数据可支持的属性字段类型略有不同,具体可参考“附录IV”。
PostgreSQL数据库中,不同属性字段间可支持的转换关系如下表所示,其中纵轴为原始属性字段类型,横轴为目标属性字段类型。
MapGIS | 字符串 | 字节型 | 布尔型 | 短整型 | 长整型 | 64位长整型 | 浮点型 | 双精度型 | 邮戳型 | 日期型 | 时间型 | 文本型 | 图片型 | 地图型 | 声音型 | 视频型 | 表格型 | IP地址型 | 二进制大对象类型 | 文本大对象类型 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字符串 | \ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | × | × | × | × | × | × | × | √ | √ |
字节型 | √ | \ | ⍻ | √ | √ | √ | √ | √ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
布尔型 | √ | × | \ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
短整型 | √ | ⍻ | ⍻ | \ | √ | √ | √ | √ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
长整型 | √ | ⍻ | ⍻ | ⍻ | \ | √ | √ | √ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
64位长整型 | √ | ⍻ | ⍻ | ⍻ | ⍻ | \ | √ | √ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
浮点型 | √ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | \ | √ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
双精度型 | √ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | √ | \ | × | × | × | × | × | × | × | × | × | × | × | ⍻ |
邮戳型 | √ | × | × | × | × | × | × | × | \ | √ | √ | × | × | × | × | × | × | × | × | ⍻ |
日期型 | √ | × | × | × | × | × | × | × | √ | \ | √ | × | × | × | × | × | × | × | × | ⍻ |
时间型 | √ | × | × | × | × | × | × | × | × | × | \ | × | × | × | × | × | × | × | × | ⍻ |
文本型 | ⍻ | × | × | × | × | × | × | × | × | × | × | \ | × | × | × | × | × | × | ⍻ | ⍻ |
图片型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | \ | × | × | × | × | × | ⍻ | ⍻ |
地图型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | × | \ | × | × | × | × | ⍻ | ⍻ |
声音型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | × | × | \ | × | × | × | ⍻ | ⍻ |
视频型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | \ | × | × | ⍻ | ⍻ |
表格型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | \ | × | ⍻ | ⍻ |
IP地址型 | √ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | \ | ⍻ | ⍻ |
二进制大对象类型 | ⍻ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | \ | ⍻ |
文本大对象类型 | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | ⍻ | × | × | × | × | × | × | × | ⍻ | \ |
提示:
1. "√"代表可支持;"⍻"代表部分支持,但结果可能被截断;"×"代表不支持;"\"代表字段类型不变,无需转换;
2. 属性结构编辑时调整属性字段类型,会与属性值息息相关。以"长整型"修改为"短整型"为例,当属性值在[-32768,32767]间时可成功,但超出此范围则会失败。
# 操作说明
1. 在MapGIS Catalog或工作空间中,矢量图层右键启动“属性结构设置”功能,弹出如下所示对话框:
2. 在“字段名称”下方单元格内单击鼠标左键可以输入(或修改)要添加的字段名称,即可新建一个属性字段。
- 【字段名称】:设置属性字段名称,此名称必须是唯一值,首字符必须为字母或汉字,且长度不能超出20个字节;
提示:
1. "OID", "FID", "AnnID", "ArcID", "DotID", "mpoid","mpLayer","mpLength","mpArea","","mpPerimeter","mpSurfArea"等为MapGIS内置属性字段名称,不允许使用。
2. 每种数据源可支持属性结构名称有独立的限制要求,建议可参考各数据库的"keywords"限制。如,PostgreSQL可参考"PostgreSQL (opens new window)";HDB可参考"SQLite (opens new window)"。
- 【别名】:属性字段别名。默认情况下显示属性字段名称,可通过MapGIS Catalog中“配置管理”功能将属性表中默认显示设置为别名;
- 【类型】:设置属性字段类型。
- 【长度】:设置属性字段的最大长度;
- 【小数显示位数】:对于数值类型的属性字段,可以设置小数位数;
- 【缺省值】:当属性字段不允许为空时,需设置缺省值。新建图元时,默认属性值为该值;
- 【允许编辑】:默认勾选时,该字段允许编辑,不勾选时,属性字段的值不允许编辑;
- 【允许空】:默认允许属性字段的值为空,若不勾选,需设置“缺省值”。
- 【扩展信息】:编辑字段扩展信息。对于某些类型的字段,包含一些扩展信息供用户编辑。扩展信息包括“域(属性规则)”和“字段形态”两类。“域(属性规则)”的详细设置参见“设置子类型”章节的相关内容。“字段形态”包括“编辑框”和“组合框”两种。
3. 基于已有属性结构,用户可进行如下操作:
- 【导入】:点击可将保存属性结构的xml文件导入,也可将GDB中其他数据的属性结构导入。
- 【导出】:点击可将属性结构导出并保存为xml文件。
- 【添加默认字段】:点击此按钮,区图层添加mpLayer、mpArea、mpPerimeter默认字段,线图层添加mpLayer、mpLength默认字段,点图层添加mpLayer默认字段。
- 【插入】:选择某个属性字段,点击插入,可在上方新建一条属性字段;
- 【删除】:选择单个或多个属性字段后,点击删除,可删除属性字段;
- 【上移/下移】:选择单个或多个属性字段后,点击上移/下移,可将选中的属性字段上移/下移一行。
4. 点击"确定",即可保存属性结构编辑信息。
(a)编辑框
属性字段默认为编辑框,即用户可自由编辑属性值内容。
(b)组合框
当字段形态为“组合框”时,编辑该属性字段时只能通过下拉菜单选择预先设置的属性值。在“扩展信息”栏中,选择“字段形态”为组合框后,出现“组合框选项”:
可通过如下两种方式编辑组合框选项:
- 编辑组合框选项。用户可交互编辑组合框选项,包括名称和值信息。
- 从矢量类属性结构导入组合框选项。可选择某个矢量类的两个属性字段,系统会自动统计属性字段的单值信息作为组合框选项。
提示:
1、框“值”一列中,设置值的数据类型要与属性字段类型一致。如原始属性字段为“字符串”类型,则组合框“值”必须为“字符串”类型。
2、“名称”列用于MapGIS查看属性内容时显示的信息,“值”列是属性表的真实内容。在数据导出时,记录的属性内容是“值”而非“名称”。
设置“组合框”类型属性字段后,在编辑属性信息时,只能通过下拉框模式编辑属性值内容,下拉框内容与设置的“组合框”选项一致。
提示:
具有“字段形态”信息的字段类型包括字符型、字节型、短整型、长整型、64位长整型、浮点型、双精度型、日期型、时间型。
# 查看属性
# 功能说明
用以浏览及修改图层的属性字段内容。
# 操作说明
1. 在工作空间视窗下右键选择图层,在右键菜单中选择“查看属性”,弹出“属性视图”对话框:
提示:
当用户依次查看多个简单要素类的属性表时,属性视图中可罗列所有查看的属性表,用户可交互切换查看各数据的属性表内容。
- 【只读】:默认为勾选。勾选时,用户只能查询属性表内容,不能编辑属性值;反之不勾选时,用户可编辑属性值。
- 【图属联动】:勾选时,双击某一条属性记录,在地图视图中会自动跳转到该图元。若用户希望最大化显示该图元,请开启“编辑参数”中的“双击定位时缩放图元”;
- 【仅显示选中】:勾选时,只显示选中图元的属性记录。
- 【刷新】:属性表不会实时刷新,如在地图视图中删除部分图元时,属性表中对应图元的属性记录会显示为Null。点击,可手动刷新属性表,不显示已删除的图元属性记录。
- 【属性统计】可统计属性内容,具体可参见“属性统计”
2. 右键某一属性字段名,用户可在弹出的右键菜单中选择相应的功能进行操作。
- 【升序】:对当前选中的该列属性字段值进行升序排列。
- 【降序】:对当前选中的该列属性字段值进行降序排列。
- 【影藏列】:对当前选中的该列属性字段隐藏,隐藏后该列字段将消失不显示。
- 【锁定列】:对当前选中的该列属性字段锁定,锁定后该字段在属性视图中仅次于OID显示,当左右滚动属性表时,该字段总是显示。
- 【字段显示设置】:选择该功能,弹出下图对话框,在对话框中选中某一行字段对其进行操作:
- 【按名称字段查找】:在文本框中输入名称可查找出对应字段。
- 【上移/下移】:可通过“上移”“下移”按钮来改变字段在属性视图中的显示顺序;
- 【重置顺序】:可将属性字段的顺序恢复到初始状态;
- 【显示/隐藏】:左侧列表中选择某字段后,通过点击“显示”、“隐藏”按钮设置该字段是显示还是隐藏状态;也可通过点击左边列表中“隐藏”单元格下的方框,设置该字段的显示状态;
- 【锁定/释放】:若将某字段锁定,则该字段在属性视图中仅次于OID显示,当左右滚动属性表时,该字段总是显示。左侧列表中选择某字段后,点击“锁定”、“释放”按钮设置该字段是否被锁定;也可通过点击左侧列表中“锁定”单元格下的方框,设置该字段是否被锁定;
- 【像素】:在列宽“像素”中输入具体的数值,则当前被选字段以该数值的像素大小来显示该列。
- 【字段汇总】:可统计属性值信息。
- 【汇总标准信息】:只能对数值型的属性字段进行统计。可统计该属性字段的最大值、最小值、平均值、求和信息;
- 【汇总单值信息】:统计选中属性字段的单值信息,包括单值个数,各单值的值内容;
- 【数据保存】:将属性表另存为本地的Excel或文本文件。
# 查找与替换
# 功能说明
在查看属性表时,可查询并替换属性值内容。若用户希望对部分数据进行批量替换,可先“查询”符合条件的属性记录,再通过“替换”或“高级替换”功能,批量修改属性内容。
在实际应用中,有时需要进行多次查找与替换操作,实现属性表的批量编辑。
例如,当“mpArea”属性字段值大于100是,“Type”字段值赋为A,反之赋为B。编辑属性表时,需先执行“mpArea>100”条件查询,将选中记录替换为固定值A;再执行“mpArea<=100”条件查询,将选中记录替换为固定值B。
(1)查询
可根据OID或SQL条件,查询符合条件的属性记录。
a、序号查询
采用序号查询时,输入序号值,点击,即可查询该序号。
输入“+”或“-”可将当前选择行移至目标位置,输入“last”,移至最后一行。如输入“+10”,点击,每次可查询序号+10的属性记录。
b、OID查询
采用OID号查询时,输入OID值,点击,即可查询该OID属性记录。
c、SQL查询
采用SQL查询时,可弹出“输入表达式”对话框,在对话框中可编辑SQL查询语句。
- 【字段信息】:此次可罗列矢量数据中所有属性字段。鼠标左键双击某个属性字段时,可将该属性字段添加到SQL语句中;
提示:
目前仅“字符串”、“字节型”、“布尔型”、“短整型”、“长整型”、“64位长整型”、“浮点型”、“双精度型”、“日期型”、“时间型”、“邮戳型”类型属性字段可支持SQL查询。
- 【获取属性值】:选择某个属性字段后,可统计其单值信息,并罗列在表格中。鼠标左键双击某个属性值,可将该属性值添加到SQL语句中;
- 【运算符】:可交互选择运算符编辑SQL语句,具体用法可参考“SQL查询函数说明”;
- 【保存SQL语句】:编辑好SQL语句后,勾选“保存SQL语句”,点击“保存”,即可保存SQL记录,以便下次重复使用;
提示:
SQL记录保存在“MapGIS安装目录\Program\SqlData.xml”文件中。
- 【SQL记录】:保存SQL语句后,可在此处查询到已保存的SQL语句,双击可快速输入SQL语句;
(2)替换
可根据“文本”内容查找符合条件的属性记录,并替换为指定的文本内容。
1. 启动“查询替换”功能后,切换到“替换”。
2. 选择待替换的属性字段。当属性字段比较多时,可在“字段查找”中输入关键词,可模糊查询包含该关键词的属性字段;
3. 输入“文本”及“替换文本”,并可设置如下查询参数:
- 【文本】:查询条件文本内容;
- 【替换文本】:替换后的文本内容;
- 【匹配部位】:设置文本查找匹配限制:
- 完全匹配:当属性值与“文本”内容一致时符合条件;
- 首部匹配:当属性值首部与“文本”内容一致时符合条件;
- 尾部匹配:当属性值尾部与“文本”内容一致时符合条件;
- 任意部位匹配:当属性值任意部位与“文本”内容一致时符合条件。
- 【查找方向】:设置查找方向,包括“向下”和“向上”两种;
- 【区分大小写】:勾选后,可区分大小写,反之不区分;
- 【查找被选记录】若已选择部分属性记录,可勾选此功能。勾选后,只有选中的属性记录中符合条件的属性记录会被替换,未被选中的属性记录不会被替换。
4. 点击“查找下一处”,可查询符合条件的属性记录;点击“替换”可替换当前选中的记录,将“文本”内容替换为“替换文本”;点击“全部替换”可替换所有符合条件属性记录。
如需将“name”字段中,属性值首部为“bus”内容替换为“公交”,参数设置如下图:
(3)高级替换
高级替换中提供了“固定值替换”、“增量值替换”、“表达公式替换”、“前缀后缀替换”四种批量替换方式。
a、固定值替换
将属性字段的值替换为某一固定值。
1. 启动“查询替换”功能后,切换到“高级替换”,选择“固定值替换”方式;
2. 选择待替换的属性字段。当属性字段比较多时,可在“字段查找”中输入关键词,可模糊查询包含该关键词的属性字段;
3. 设置固定值。目前可设置为空值,或某个固定值。
提示:
设置某个固定值时,值内容需与属性字段的格式匹配,否则会替换失败。如“日期型”属性字段,固定值必须为“YYYY-MM-DD”格式。
- 【替换被选记录】:若已选择部分属性记录,可勾选此功能。勾选后,只有选中的属性记录中符合条件的属性记录会被替换,未被选中的属性记录不会被替换。
4. 点击“下一行”,可跳转到下一条待替换的属性记录,点击“上一行”,可跳转到上一条待替换的属性记录。点击“替换”可替换当前选中的记录;点击“全部替换”可替换所有符合条件属性记录。
b、增量值替换
增量值替换是在初始值(字段的第一个值)的基础上,以设定的增量值作为累加量(每个字段逐次增加值),替换被选属性字段的值。替换结果是该字段值以初始值开始,生成按当前排序依次增加增量值的序列。例如,初始值为10,增量值为2,以OID的升序为标准,替换后ID字段的值依次变为:10、12、14、……。
1. 启动“查询替换”功能后,切换到“高级替换”,选择“增量值替换”方式;
2. 选择待替换的属性字段。当属性字段比较多时,可在“字段查找”中输入关键词,可模糊查询包含该关键词的属性字段;
提示:
增量值替换目前仅可支持 “字符串”、“字节型”、“短整型”、“长整型”、“64位长整型”、“浮点型”、“双精度型”等属性字段类型。
3. 设置“初始值”和增量值。
- 【替换被选记录】:若已选择部分属性记录,可勾选此功能。勾选后,只有选中的属性记录中符合条件的属性记录会被替换,未被选中的属性记录不会被替换。
4. 点击“下一行”,可跳转到下一条待替换的属性记录,点击“上一行”,可跳转到上一条待替换的属性记录。点击“替换”可替换当前选中的记录;点击“全部替换”可替换所有符合条件属性记录。
c、表达式替换
1. 启动“查询替换”功能后,切换到“高级替换”,选择“表达公式替换”方式;
2. 选择待替换的属性字段。当属性字段比较多时,可在“字段查找”中输入关键词,可模糊查询包含该关键词的属性字段;
提示:
表达公式替换目前仅支持“字符串”、“字节型”、“布尔型”、“短整型”、“长整型”、“64位长整型”、“浮点型”、“双精度型”、“日期型”、“时间型”、“邮戳型”等属性字段类型。
3. 设置SQL表达式,将SQL表达式结果赋为属性值。具体用法可参考“SQL查询函数说明”;
4. 点击“下一行”,可跳转到下一条待替换的属性记录,点击“上一行”,可跳转到上一条待替换的属性记录。点击“替换”可替换当前选中的记录;点击“全部替换”可替换所有符合条件属性记录。
例如,现需将当前日期写入到“日期型”的属性字段“统计日期”中,参数设置如下所示:
d、前后缀替换
1. 启动“查询替换”功能后,切换到“高级替换”,选择“前缀后缀替换”方式;
2. 选择待替换的属性字段。当属性字段比较多时,可在“字段查找”中输入关键词,可模糊查询包含该关键词的属性字段;
提示:
目前仅“字符串”类型的属性字段可支持前后缀替换操作。
3. 设置替换方式,勾选后该方法才可用:
- 【增加前缀】:为属性值添加统一前缀信息;
- 【增加后缀】:为属性值添加统一后缀信息;
- 【去前空格】:当属性值前端包含空格时,可批量删除前端空格;
- 【去后空格】:当属性值尾部包含空格时,可批量删除尾部空格。
- 【替换被选记录】:若已选择部分属性记录,可勾选此功能。勾选后,只有选中的属性记录中符合条件的属性记录会被替换,未被选中的属性记录不会被替换。
4. 点击“下一行”,可跳转到下一条待替换的属性记录,点击“上一行”,可跳转到上一条待替换的属性记录。点击“替换”可替换当前选中的记录;点击“全部替换”可替换所有符合条件属性记录。
# SQL查询表达式
MapGIS在进行SQL条件查询时,遵循了标准的计算机SQL查询语句。SQL查询语句变化丰富,下面以几种常用的SQL条件查询为例进行讲解。
①数值查询
对于数值类的属性字段查询可以使用“=”,“!=”,“<”,“<=”,“>”,“>=”等查询语句。
例如,查询面积“mpArea”大于500的属性记录:
mpArea>500
②模糊查询
模糊查询使用 like,通配符采用“%”。
例如,查询名称“name”为“北京大学”的属性记录,如下两种方式均可:
name='北京大学'
name LIKE '北京大学'
查询名称name后缀为“大学”的属性记录:
name LIKE '%大学'
查询名称name中任意位置包含为“大学”的属性记录:
name LIKE '%大学%'
③查询字段值为空
查询是否为空值使用 IS NULL 或 IS NOT NULL。
例如,查询名称“name”为空的属性记录:
name IS NULL
④构建函数进行查询
通过构建SQL数学表达式函数,查询符合条件的记录。
例如,查询“水稻”产量高于“小麦”产量2倍的属性记录:
水稻>小麦*2
⑤时间查询
对“日期型”、“时间型”、“邮戳型”属性字段进行查询。
例如,查询“统计日期”在2023-1-1到2024-1-1间的属性记录,包含2023-1-1但不包含2024-1-1:
统计日期>='2023-1-1' AND 统计日期<'2024-1-1'
# SQL查询函数说明
SQL查询时通过构建SQL查询函数,查找满足指定条件的数据。MapGIS目前支持SQL查询函数包括运算符号、数学函数、字符串函数和时间函数四种类型。
(1)运算符号
运算符号是SQL查询条件的基础符号,包括常用的算术运算符、比较运算符和逻辑运算符。
类型 | 运算符 | 说明 |
---|---|---|
算术运算符 | + | 加法 |
- | 减法 | |
* | 乘法 | |
/ | 除法 | |
比较运算符 | = | 等于 |
> | 大于 | |
< | 小于 | |
>= | 大于等于 | |
<= | 小于等于 | |
!= | 不等于 | |
逻辑运算符 | like | 使用通配符运算符将值与类似值进行比较 |
and | 如果两个表达式都为真,则返回true | |
or | 如果任一表达式为真,则返回true | |
not | 反转其他布尔运算符的结果 | |
Is Null | 运算符将列的值与null值进行比较,如果比较的值为null,则返回true; 否则,它返回false |
(2)数学函数
数学函数用来执行算术运算。
函数名 | 语法 | 说明 | 示例 |
---|---|---|---|
Abs | Abs(x) | 绝对值函数。 | 语法:Abs(-4.5) 返回值:4.5 |
Exp | Exp(x) | 以自然对数 e 为幂的函数。 | 语法:Exp(2) 返回值:7.389056 |
Floor | Floor(x) | 向下舍入函数,即获得距x最近的较小整数。 | 语法:Floor(1.89) 返回值:1 |
Ceil | Ceil(x) | 向上舍入函数,即获得距x最近的较大整数。 | 语法:Ceil(1.89) 返回值:2 |
Sin | Sin(x) | 正弦函数。 | 语法:Sin(2) 返回值:0.909297 |
Cos | Cos(x) | 余弦函数。 | 语法:Cos(1) 返回值:0.540302 |
Tan | Tan(x) | 正切函数。 | 语法:Tan(1) 返回值:Tan(30) |
Cot | Cot(x) | 余切函数。 | 语法:Cot(30) 返回值:0.642093 |
LN | LN(x) | 取自然对数。 | 语法:LN(9) 返回值:2.197225 |
Power | Power(x,y) | x 的 y 次方。 | 语法:Power(2,3) 返回值:8 |
Sqrt | Sqrt(x) | 对 x 开方。 | 语法:Sqrt(9) 返回值:3 |
提示:
MapGIS中正弦、余弦、正切、余切函数中x值单位为弧度。
(3)字符串函数
字符串函数用来对字符串或表达式进行操作。
函数名 | 语法 | 说明 | 示例 |
---|---|---|---|
ASCII | ASCII(input_string) | 返回字符表达式最左端字符的 ASCII 代码值,input_string可以是字符串,字符串表达式或属性列 | 语法:ASCII('ab') 返回值:97 |
Chr | Chr(x) | 返回与所给ASCII数值参数等当的字符 | 语法:Chr(97) 返回值:a |
Lower | Lower(input_string) | 将字符串中大写字母转换为小写字母 | 语法:Lower('XyAB') 返回值:xyab |
Left | Left(input_string,length) | 从提供的字符串的左侧开始提取给定长度的字符 | 语法:Left('ABxy',3) 返回值:ABx |
LTrim | LTrim(input_string) | 去除字符串中最左边的空格 | 语法:Trim(' a bcd') 返回值:a bcd |
Mid | Mid(input_string,startlength,length) | 从字符串中startlength位置开始提取length个字符,startlength起始为0 | 语法:Mid('abcdef',2,3) 返回值:cde |
Right | Right(input_string,length) | 从提供的字符串的右侧开始提取给定长度的字符 | 语法:Right('ABxy',3) 返回值:Bxy |
Rtrim | RTrim() | 去除字符串中最右边的空格 | 语法:RTrim('a bcd ') 返回值:a bcd |
Space | Space(count) | 以空格构造字符串,count是一个正整数,表示空格的数量 | 语法:Space(2) 返回值:{2个空格} |
Trim | Trim() | 去除字符串中两端的空格 | 语法:Trim(' abc def ') 返回值:abc def |
Upper | Upper() | 将字符串中小写字母转换为大写字母 | 语法:Upper('aBcd') 返回值:ABCD |
(4)时间函数
日期函数用来处理日期和时间。
函数名 | 语法 | 说明 | 示例 |
---|---|---|---|
date | date() | 返回当前日期 | 语法:Date() 返回值:2024-2-29 |
sysdate | sysdate() | 返回当前日期及时间 | 语法:sysdate() 返回值:2024-2-29 15:33:41 |
dateadd | dateadd(datepart,number,date) | 在日期中添加或减去指定时间间隔 | 语法:dateadd(dd,-3,'2024-2-24') 返回值:2024-2-21 |
datepart | datepart(datepart,date) | 返回指定日期时间的指定部分整数 | 语法:datepart(dd,'2024-2-12') 返回值:12 |
其中datepart参数说明如下表:
日期部分 | 缩写 | 说明 |
---|---|---|
year | yy,yyyy | 返回年份 |
quarter | qq,q | 返回季度 |
month | mm,m | 返回月份 |
day of year | dy,y | 返回一年中的第几天 |
day | dd,d | 返回日 |
week | wk,ww | 返回一年中的第几周 |
weekday | dw | 返回星期几 数据型 |
hour | hh | 返回小时 |
minute | mi,n | 返回分钟 |
second | ss,s | 返回秒 |
millisecond | ms | 返回毫秒数 |
# 属参统改
当需要修改多个图元的参数或属性时,逐个图元编辑无疑非常耗时,MapGIS提供了参数、属性的统改功能,可将符合某一参数条件的图元统一修改其参数或属性值,也可对符合某一属性条件的图元统一进行修改参数、属性信息。
# 根据参数改参数
# 功能说明
将符合某参数条件的图元的某参数信息进行统改。
# 操作说明
在工作空间视窗下右键选择图层,在右键菜单中选择“统改参数/属性”下的“根据参数改参数”,弹出与当前图层对应的参数替换对话框。
(1)点状图形参数替换
在点状图形参数替换对话框中,先在左边的“统改条件”中选中用于查询的条件参数项并输入相应参数值,然后在右边的“统改结果”中选中替换参数项并输入相应参数值,最后单击"确定"按钮。满足替换条件的图元其参数将统一替换为“统改结果”中指定的参数值。各参数意义可参见点图元编辑章节中“修改子图参数”。
例如,把图层中满足:“子图颜色”为6的子图,其图形参数替换为:“子图颜色”为33、“子图高度”和“子图宽度”都为0.20。相应的操作步骤为:①在下图所示对话框中把统改条件中的“子图颜色”打勾,并输入6(或在下拉框中选择6号色);②在统改结果中将“子图颜色”打勾并输入33、将“子图高度”打勾并输入0.20,“子图宽度”打勾并输入0.20;③最后单击"确定"按钮即可实现替换操作。
- 【修改当前地图的所有点图层】:若勾选,则当前地图下的所有点图层都将参与修改。
(2)线状图形参数替换
在线状图形参数替换对话框中,先在左边的“统改条件”中选中用于查询的条件参数项并输入相应参数值,然后在右边的“统改结果”中选中替换参数项并输入相应参数值,最后单击"确定"按钮。满足替换条件的图元其参数将统一替换为“统改结果”中指定的参数值。各参数意义可参见线图元编辑章节中“修改线参数”。
具体操作步骤可参考上述点状图形参数替换。
(3)面状图形参数替换
在面状图形参数替换对话框中,先在左边的“统改条件”中选中用于查询的条件参数项并输入相应参数值,然后在右边的“统改结果”中选中替换参数项并输入相应参数值,最后单击"确定"按钮。满足替换条件的图元其参数将统一替换为“统改结果”中指定的参数。各参数意义可参见区图元编辑章节中“修改区参数”。
具体操作步骤可参考上述点状图形参数替换。
(4)注记参数替换:
在注记参数替换对话框中,先在左边的“统改条件”中选中用于查询的条件参数项并输入相应参数值,然后在右边的“统改结果”中选中替换参数项并输入相应参数值,最后单击"确定"按钮。满足替换条件的注记其参数将统一替换为“统改结果”中指定的参数。各参数意义可参见点图元编辑章节中“修改注记参数”。
具体操作步骤可参考上述点状图形参数替换。
# 根据属性改参数
# 功能说明
将属性字段值符合一定条件的图元的参数信息进行统改。
# 操作说明
在工作空间视窗下右键选择图层,在右键菜单中选择“统改参数/属性”下的“根据属性改参数”,弹出与当前图层对应的参数替换对话框,左侧输入筛选条件,右侧选择相应的参数项并指定参数值,单击"确定"按钮完成替换操作。
下图所示为点参数统改对话框,具体的参数修改操作可参考上节点状图形参数替换。
属性值筛选:
SQL语句筛选:
# 根据参数改属性
# 功能说明
将参数值符合一定条件的图元的属性信息进行统改。
# 操作说明
1. 在工作空间视窗下右键选择图层,在右键菜单中选择“统改参数/属性”下的“根据参数改属性”,弹出“根据参数改属性”窗口;
2. 在当前图层相对应的窗口下,左侧“统改条件”栏中输入相应的参数条件,右侧“统改结果”栏中将要修改的字段勾选上,输入更改后的属性值,单击"确定"按钮完成替换操作。
# 根据属性改属性
1. 在工作空间视窗下右键选择图层,在右键菜单中选择“统改参数/属性”下的“根据属性改属性”,弹出“根据属性改属性”窗口;
2. 在当前图层相对应的窗口下,左侧“统改条件”栏中输入筛选条件来确定需要统改的图元,右侧“统改结果”栏中将要修改的字段勾选上,输入更改后的属性值,单击"确定"按钮完成替换操作。
属性值筛选:
SQL语句筛选:
# 属性工具
属性工具用于对图层属性的操作处理,包括:属性合并、属性汇总、属性连接、属性统计功能。
# 属性合并
# 功能说明
属性合并功能提供简单要素类之间、简单要素类和对象类之间属性的合并,通过合并功能,可以将源类的属性合并到目的类中。
# 操作说明
1. 点击菜单【工具】-【属性工具】-【属性合并】,弹出属性合并对话框,如图:
2. 在对话框“选择数据”中完成如下相应参数设置:
- 【源数据目录】:连接数据源选择源类目录数据,目录中所有类显示在列表中。可以查看/编辑源类的属性结构。
- 【全选】,勾选,列表中所有类全部被选中,也可在列表中自己选择。
- 【合并目的类】:结果保存至新的对象类到指定路径。
3. 点击"下一步",在“属性结构合并”对话框设置数据的兼容方式,点击问号按钮可以查看兼容方式的帮助信息
属性合并策略:根据属性结构的不同分为相同属性结构合并和不同属性结构合并。
相同属性结构指的是属性表中的字段个数相等,且每一字段名称相同、字段类型相同、字段是否允许为空一致。
相同属性结构合并
方式:直接在目的类记录后追加源类的记录,结果示意如下。
不同属性结构合并
(1)默认合并
条件:目的类中每一字段必须允许为空,源类和目的类至少有一字段具有相同字段名、相同字段类型。
方式:直接在目的类记录后追加源类的记录(不修改目的类属性结构)。只勾选“允许不同属性结构合并”。
结果示意如下。
(2)高级合并
条件1:目的类中有不允许为空字段。
方式1:高级选项中打勾目的类字段允许为空,结果示意如下。
条件2:字段名相同,字段类型不同且不可以相互转换(兼容)。
方式2:可以在目的类中增加字段,也可以不增加字段。
界面选择方式(增加字段):命名方式可以选择不更改源字段、源字段名加序号、源字段名加类的方式。
(A)打勾允许目的类增加字段,结果示意如下:
(B)高级选项中打勾目的类字段允许为空,结果示意如下:
条件3:字段名相同,字段类型不同且可以相互转换(兼容)。
方式3:不支持数据兼容、支持数据相互兼容、支持数据相互兼容(以目的类为标准)、支持数据相互兼容(以源类为标准)。结果示例与界面中“帮助”内容一致。
以下为各种方式的用户界面选择方式及合并结果:
用户界面选择方式(不支持数据兼容),结果示意如下。
用户界面选择方式(支持数据相互类型兼容),结果示意如下。
用户界面选择方式(支持数据相互类型兼容(以目的类为标准)),结果示意如下。
用户界面选择方式(支持数据相互类型兼容(以源目的类为标准)),结果示意如下。
4. 选择源类和设置好属性结构合并选项后,点击"下一步",选择创建合并后的目的对象类名称以及路径。点击完成,弹出合并信息确认表。在此可以查看属性合并的具体信息,点击合并,完成属性合并到新类中。点击查看日志可以查看具体的日志信息。
# 属性连接
# 功能说明
属性连接功能实现将源类连接到目的类,连接原则是源类和目的类关键字段的记录值相等且该关键字段类型可以兼容的前提下,在目的类中连入源类字段。
# 操作说明
1. 点击菜单【工具】-【属性工具】-【属性连接】,弹出属性连接对话框,如图:
2. 在对话框中的“选择数据”项中源类和目的类为单个类(简单要素类或对象类)。结果类可以是目的类本身,也可以新建对象类。相关参数设置如下:
【数据A】:点击“”按钮,数据源中选择简单要素类或对象类;
【数据B】:点击“”按钮,数据源中选择简单要素类或对象类;
【目的数据】:结果类数据可以选择是“数据A/数据B”保存;
【连接到新类】:勾选后,可以新建对象类保存结果;
【全选】:可以自定义需要连接的字段,也可以全不选择字段进行连接;(结果类所有字段都必须参与连接)
3. 点击"下一步",设置源类和目的类的多关键字段,相关参数设置如下:(点击"取消",退出属性连接界面)
源类和目的类关键字段的记录值相等且该关键字段类型可以兼容,才能成功进行属性连接。可以选择多个关键字段“添加”至列表中进行连接。
【数据A关键字段】:下拉框中将排列数据A所有字段,选择需要连接的关键字段;
【数据B关键字段】:下拉框中将排列数据B所有字段,选择需要连接的关键字段;
提示:
当数据A与数据B的关键字段的类型不一致时,可能会导致连接失败。需要用户先手动“修改属性结构”中的类型,再执行“属性连接”操作。
4. 若点击"下一步",在向导三 “连接设置”中,点击“连接方式及字段命名”,可以设置连接方式以及创建新类路径。点击完成按钮,完成源类和目的类的连接。点击查看日志,可以查看详细报告。相关参数设置如下:
属性连接按照连接方式的不同有分为完全连接和不完全连接。其中系统默认的是完全连接。
- 【完全连接】:不改变目的类中的记录数,不能连入的记录在目的类中设为空。
- 【不完全连接】:根据关键字段中记录的匹配情况,改变目的类中的记录数,目的类中删除不能匹配的记录。
目的类中可以根据设置改变连接后字段名称。
【不更改源字段名称】:保存原有的属性字段名,不做任何改变;如:省名
【源字段名加序列号】:根据关键字段中记录的匹配情况,将源字段后缀添加序号“1”;如:省名1
【源字段名加类名】:根据关键字段中记录的匹配情况,将源字段后缀添加源类名。如:省名_省名;
【日志文件】:选择路径,将属性连接日志保存指定路径;
提示:
属性连接与属性合并的区别:
属性合并不需要唯一字段,属性连接需要指定连接的唯一匹配字段。
属性合并操作不会改变源类的属性结构,属性连接则改变源类的属性结构再进行合并操作。
# 属性汇总
# 功能说明
属性汇总工具提供简单要素类数据的汇总功能。
# 操作说明
1. 点击菜单【工具】-【属性工具】-【属性汇总】,弹出属性汇总对话框,如图:
2. 在对话框中完成如下相应参数设置:
【选择数据】:点击“”按钮,选择要操作运算的简单要素类;
【修改属性结构】:提供了属性结构的“导入/导出”、“设置默认字段”以及“缺省值”,添加/删除字段或修改字段属性等功能。详细可见属性结构设置章节;
【属性浏览】:可浏览简单要素类属性表所有内容;
【设置参照系】:可以为数据创建新的地理坐标系或投影坐标系。具体新建步骤参见"空间参照系管理/自定义参照系"中的相关内容。
3. 选择运算方式和属性字段。运算可以是全部实体,也可以将“where”打勾进行SQL条件语句选择实体。SQL运算方式可参照属性统计中的“属性筛选”。
4. 点击"执行"按钮操作所选的运算。在输出栏显示运算结果。
提示:
属性汇总中有2项较特殊的功能,其操作上有些特殊,在此进行额外说明。
(1)坐标属性化
该功能仅适用于点图层,将点的X/Y坐标赋予某属性字段中。在进行坐标属性化时,至少选中两个属性字段,才能够正确执行操作。
【操作步骤】:
1)编辑图层属性结构,确保包含双精度型的属性字段;
2)选择简单要素点图层→选择“坐标属性化”;
3)点击"执行"按钮,弹出在“坐标属性化”对话框,选择需要执行X/Y字段,"确定"后“输出”栏中将看到执行的结果;;
4)可点击“属性浏览”按钮,查看最终结果。
(2)注记属性化
将注记内容写到属性中的操作。
【操作步骤】:
1)编辑图层属性结构,确保包含字符串类型的属性字段;
2)选择注记图层→选择“注记属性化”项→选择字段(字符串型);
3)点击"执行"按钮,在“输出”栏中将看到执行的结果;
4)可点击“属性浏览”按钮,查看最终结果。
# 属性统计
# 功能说明
属性统计主要是对选中的字段进行数学统计分析,包括计数、频率、求和、最大值、最小值、平均值及方差。
# 操作说明
1. 启动“属性统计”功能,弹出如下所示对话框:
2. 用户可通过下拉框选择【工作空间】中已添加的矢量数据,也可通过 选择数据库或本地文件夹中的矢量数据。目前系统支持点、线、区、注记四种类型的矢量数据;
- 【属性筛选】:可通过SQL语句,筛选部分属性记录进行统计,不满足条件的属性记录不参与统计;
- 【只对选择集进行操作】:当【地图视图】中已选中图元,可只对选中的图元进行统计;
3. 设置分类字段。当用户不选择分类字段,直接对输入数据进行统计,只有一条统计结果;当用户选择一个或多个分类字段,根据多个字段组合的唯一值进行统计;
- 【一值一类】:分类字段中每一个属性值作为一个类;
- 【分段分类】:只支持数值型的属性字段。可按照属性值范围划分为若干个类。
4. 设置统计字段与统计方式。选择
- 【计数】:统计每一个类中的属性字段记录个数;
- 【频率】:统计每一个类中属性字段记录个数占总记录个数的百分比;
- 【求和】:统计每一个类中属性的求和;
- 【最大值】:统计每一个类中属性的最大值;
- 【最小值】:统计每一个类中属性的最小值;
- 【平均值】:统计每一个类中属性的平均值;
- 【方差】:统计每一个类中属性的方差值。
5. 点击【统计】,可生成统计表。如下所示,可统计各行政单位内各种地类的面积、图斑个数。
6. 点击【导出】,可将统计表导出为excle或txt文本。
7. 点击【创建统计图 】,可根据统计表生成统计图。
- 【统计图类型】:当用户手动设置统计图相关参数时,可通过下拉框选择统计图类型,右边统计图会根据用户选择实时更新统计图类型。系统提供了垂直条形图、水平条形图、3D条形图、垂直线形图、水平线形图、3D线形图、垂直区域图、水平区域图、3D区域图、饼形图、3D饼形图和散点图共12种类型。
- 【统计图标题】:可自定义统计图标题名称。
- 【显示标签】:如下图,用户可以根据需求调节标签在条形中的位置。支持顶端外部、顶端内部、中间、底端内部4种类型。不勾选,则不显示标签。
- 【显示图例】:如下图,用户可以根据需求调节图例在统计图中位置。不勾选,则不显示图例。
- 水面对齐:支持外部左对齐、内部左对齐、水平居中对齐、内部右对齐、外部右对齐;
- 垂直对齐:支持外部顶端对齐、内部顶端对齐、垂直居中对齐、内部底端对齐、外部底端对齐;
- 方向:由上至下、由下至上、由左至右、由右至左;
- 【各条形颜色独立显示】:用户可以根据需求调条形图形的参数,如颜色、比例、排序。勾选状态下,每个条形的颜色都会单独显示颜色,不勾选,则所有条形统一设置颜色。
- 【显示边框】:勾选,可以显示并自定义条形边框的颜色。反正,不显示。
- 【背景颜色】:统计图显示界面背景色。
- 【前景颜色】:统计图条形显示背景色。
- 【X轴交错显示】:勾选,可以设置X轴显示标签,如数据比较多,为了美观以及合理显示标签,可修改标签显示的角度。还可修改标签名称。
- 【显示X轴标线】:勾选后,前景中按照X轴标签显示线条。反之,不显示。
- 【Y轴交错显示】:勾选,可以设置Y轴显示标签,如数据比较多,为了美观以及合理显示标签,可修改标签显示的角度。还可修改标签名称、数据显示格式、小数点位数。
- 【显示Y轴标线】:勾选后,前景中按照Y轴标签显示线条。反之,不显示。
# 频数统计
# 功能说明
统计矢量数据中某个字段的唯一值及各唯一字段值所出现的次数,并可各唯一字段值中指定汇总字段的求和。如对地类图斑图层,频数字段选择行政区和地类名称,汇总字段选择面积,可统计各行政区内各种地类的图斑个数及面积和。
# 操作说明
1. 启动“频数统计”功能,弹出如下所示对话框:
2. 用户可通过下拉框选择【工作空间】中已添加的矢量数据,也可通过 选择数据库或本地文件夹中的矢量数据。目前系统支持点、线、区、注记四种类型的矢量数据;
- 【属性筛选】:可通过SQL语句,筛选部分属性记录进行统计,不满足条件的属性记录不参与统计;
- 【只对选择集进行操作】:当【地图视图】中已选中图元,可只对选中的图元进行统计;
3. 选择频数字段。用户可选择一个或多个频数字段,根据选中字段组合的唯一值进行统计;
4. 选择汇总字段。用户不选择汇总字段,结果只进行计数统计;用户可选中一个或多个汇总字段,可统计选中字段的和;
5. 点击"确定",可统计频数字段组合的各字段唯一值出现的次数及选定的字段求和;
如下所示,统计地类图斑数据中各权属单位内各种地类的图斑个数及面积、周长求和。
6. 可将统计结果导出为表格或创建统计图。
# 交集制表
# 功能说明
统计一个区域数据内输入数据的图元个数、面积、长度及统计字段求和。如根据行政区数据和地类图斑数据,可统计各行政区范围内地类图斑的个数、面积和。
# 操作说明
1. 启动“交集制表”功能,弹出如下所示对话框:
2. 输入统计数据。可支持点、线、区三种类型矢量数据。
3. 选择统计字段名。可不选择统计字段,当用户可选择一个或多个统计字段,所选中的字段会与区域字段组合确定统计分类。
4. 输入区域数据并选择字段。只支持区数据,至少选择一个区域字段。结果会根据区域字段组合的唯一字段值,确定统计分类。
5. 点击"确定",可计算区统计数据的面积、线类型统计数据的周长及点统计数据的个数。
如下所示,根据行政区数据和地类图斑数据,可统计各行政区范围内地类图斑的周长、面积和。
6. 可将统计结果导出为表格或创建统计图。
# 属性连接
# 功能说明
通过此功能,将单个或多个对象类表格数据动态挂接到矢量点/线/区数据上,既可在矢量数据属性表中查看到对象类信息,当多个矢量点/线/区数据挂接同一个对象类时,也可快速同步更新属性内容。
以自然资源资产清查为例,其中行政区内各地类分布情况是通过地类图斑矢量区进行记录,而各地类的价格等详细信息则是通过扩展对象类记录。通过此功能可将地类价格对象表动态挂接到地类图斑图层,各个行政区的地类图斑可挂接同一个对象类。
提示:
属性合并功能也可将对象表内容挂接到矢量点/线/区上,但修改原始数据属性表内容,与属性连接功能有本质差异。
# 操作说明
1. 在工作空间中添加矢量点/线/区数据,右键启动"属性连接"功能,弹出如下所示对话框:
2. 点击"添加",可弹出如下所示对话框,用户可添加连接信息。
- 【连接类】:选择一个待连接的对象表
- 【连接字段】:选择对象类中的关键字段,通过此属性字段值进行属性连接;
- 【目标字段】:选择原始属性中的关键此处,通过此属性字段值进行属性连接;
- 【自定义显示连接字段】:可选择对象类中部分属性字段动态连接到原始数据中,默认选择全部属性字段;
- 【自定义字段前缀】:设置对象类属性字段前缀,以便于和原始数据的属性字段区分;
- 【在内存缓存连接类】:勾选时,可将挂接结果保存到内存缓存中,有助于数据读取效率,但是若数据发生增/删/改等编辑操作时,不会同步更新内存缓存中数据。
3. 点击"确定",可在连接配置中查看到已配置的连接信息,用户可添加一个或多个连接配置。
4. 连接成功后,查看矢量数据的属性表,可看到配置的连接信息。
5. 若用户不再需要该连接信息,可在"连接管理"页面,选中并"删除"连接信息。