arcgis定义查询多个代码

arcgis定义查询多个代码,第1张

arcgis定义查询多个代码,步骤如下。

1.首先打开数据的属性设置。

2.然后选择定义查询,再点击构建查询器。

3.查询器中,上面的窗口为字段窗口,可以点击选择字段,中间为运算窗口,可以点击选择运算符号,

4.点击获取唯一值,则是在选择字段后,点击获取唯一值,可以看到该字段内容的所有值,类似于Excel中的筛选功能。

用Python实现批处理。步骤:1、 编写代码

import arcpy,os

inFCs = arcpy.GetParameterAsText(0)

outWS = arcpy.GetParameterAsText(1)

dist = arcpy.GetParameterAsText(2)

inFCs = inFCs.split("")

for inFC in inFCs:

fileName =os.path.split(inFC)[1]

arcpy.Buffer_analysis(inFC,outWS + "\\" + fileName, str(dist) +

"meter")

上面这段代码,要求用户自己设置输入数据、输出数据、缓冲区宽度(单位为米)。这里输出缓冲区数据的名称和输入数据的名称一样,如果不想要这样,可以进一步修改代码。

2、 接下来将该代码增加到ArcToolbox中,步骤比较简单。

需要注意的地方为最后的参数设置部分,”输入数据”的“MutiValue”属性设置为”Yes”。

3、

完成后,工具将会添加到您自己的工具箱中。

在ArcGIS构建标注表达式,有时虽然可以在字段中调整好,但直接用表达式标注更方便,特别是格式化文本

字段值自动转换为文本字符串。因此,如果想要使用算数运算中的数值或要进行比较时,需要将其转换回数值数据类型。下面的实例添加了两个整型字段:

Python

int([FIELD1]) + int([FIELD2])

VBScript

cint([FIELD1]) + cint([FIELD2])

JScript

parseInt([FIELD1]) + parseInt([FIELD2])

步骤:

单击标注工具条上的标注管理器按钮 。

单击标注分类列表中的标注分类。

单击表达式按钮。

选择解析程序菜单中的一种语言。

输入 Python、VBScript 或 JScript 表达式。也可以创建一个表达式,方法是双击相应字段,将其添加到表达式中,或选择相应字段并单击追加按钮将该字段追加到表达式的末尾,并用空格隔开。

字段用方括号 [ ] 括起来,无需考虑图层数据源的数据类型。

或者,在表达式框中输入 ArcGIS 文本格式化标签,将格式设置应用到一部分标注文本上。

如果表达式要跨多个代码行,请选中高级复选框,然后输入标注表达式。

单击验证以确保没有语法错误。

单击每个对话框上的确定。

提示:

常规和高级的标注表达式可以标注表达式文件 (.lxp) 的形式保存,该文件可加载到其他图层或地图中。

表达式示例

以下是标注表达式示例:

将字符串串联到字段的值上。例如,以下表达式将创建一个标注,其中 PARCELNO 字段值的前面会加上文本 "Parcel no:":

Python

"Parcel no: " + [PARCELNO]

VBScript

"Parcel no: " &[PARCELNO]

JScript

"Parcel no: " + [PARCELNO]

将小数四舍五入至设定的小数数位。例如,以下表达式可将“Area”字段的值四舍五入为保留一个小数位:

Python

round(float([AREA]), 1)

VBScript

Round ([AREA], 1)

JScript

function FindLabel ( [AREA] )

{

var ss

var num= parseFloat([AREA])

ss = num.toFixed(1)

return (ss)

}

将文本注记全部转换为大写形式或小写形式。例如,以下表达式可将“Name”字段中的文本全部转换为小写形式:

Python

def FindLabel ( [NAME] ):

S = [NAME]

S = S.lower()

return S

VBScript

LCase ([NAME])

JScript

[NAME].toLowerCase()

将标注文本转换为正确的大小写形式。例如,以下表达式会处理全部以大写字母显示的“Name”字段并将其转换为正确的大小写形式:

Python

def FindLabel ( [NAME] ):

S = [NAME]

S = S.title()

return S

VBScript

Function FindLabel ( [NAME] )

FindLabel = UCase(Left([NAME],1)) &LCase(Right([NAME], Len([NAME]) -1))

End Function

JScript

function FindLabel ( [NAME] )

{

var str = [NAME]

var iLen = String(str).length

var upper = (str.substring(0,1)).toUpperCase()

var lower = (str.substring(1, iLen)).toLowerCase()

return upper + lower

}

创建堆叠文本。例如,以下表达式创建一个标注,该标注中的“名字”字段和两个地址字段都在单独的行上:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11665726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存