处理动态文本

动态文本是指放置在地图布局中且随地图文档、数据框和数据驱动页面的当前属性而动态变化的文本。与 HTML 的工作原理类似,动态文本也使用标记。以下为地图文档标题的动态文本标签的示例:

<dyn type="document" property="title"/>

您将在地图布局上看到的实际文本是在地图文档属性中定义的实际地图标题。通过以下两种方式均可将动态文本添加到地图布局中:添加主菜单插入下面所列出的一个文本元素,或者编辑一个现有文本元素(手动添加一个动态标签)。

某些动态文本可以非常简单并用于自身,而有些则可能是非常复杂的。在某些情况下,您可能希望将动态文本与静态文本结合。例如,以下为显示地图上次保存日期的动态文本:

Date Saved:<dyn type="document" property="date saved" format="short"/> <dyn type="document" property="time saved" format=""/>

此文本由两部分构成:表明文本内容的静态文本 (Date Saved:) 和动态标签 <dyn type="document" property="date saved" format="short"/> <dyn type="document" property="time saved" format=""/>。动态标签中有动态文本类型 (dyn type="document"),类型属性 (property="date saved") 和格式信息 (format="short")。

提示提示:

您可使用格式化标签emptyStrpreStr 以及 postStr 等其他通用修饰符进一步自定义动态文本。

如果添加到布局的动态文本过长,而且要输入换行符,则可以使用 Shift+Enter 键,通过编辑该表中的属性字段来执行此操作。

了解有关使用表时适用的键盘快捷键的详细信息

从主菜单添加动态文本

可将多种预格式化的动态文本类型直接添加到地图布局。可通过单击主菜单上的插入 > 动态文本来执行此操作。所列出的类型仅为动态文本类型的一个子集。可通过编辑一个现有文本元素来访问其他动态文本类型。有关动态文本类型的完整列表,请参阅下文。

可以直接从主菜单中添加以下动态文本元素:

编辑动态文本

编辑现有文本元素以将动态文本标签包括在内可能是在地图布局上创建有用元素的一种简便方法。

例如,假设有若干人要访问您的地图并对其进行编辑,并且您希望跟踪上次使用该地图的人员以及使用时间。布局上的文本可能如下所示:“Last Updated by Jane on 7/18/2010 at 9:56 AM.”可通过编辑现有文本元素来完成此操作,这样您就可以将静态文本与“用户”、“日期”以及“时间”的动态文本标签连在一起。文本元素的文本可能如下所示:

Last updated by:<dyn type="user"/> on <dyn type="date" format="short"/> at <dyn type="time" format=""/>

可通过使用格式化标签更改文本的字体或颜色来进一步自定义文本的外观,或者使用日期与时间动态文本类型的属性来自定义这些值的返回方式。有关使用日期与时间的详细信息,请参阅下文。

警告警告:

如果将动态文本复制并粘贴到数据框中,或者将 mxd 保存到 10 版之前的 ArcMap 版本中,则动态文本将被静态化。静态化是指动态文本将不再动态显示。例如,以下用于捕获给定日期的动态文本:

Date:<dyn type="date" format"short"/>

会成为显示当前日期的静态文本,例如,

Date:4/4/2009

了解有关 ArcMap 中可用的格式化标签的详细信息

空字符串

如果动态文本元素字符串未解析出内容,“[空]”将会显示在布局上。当导出或者打印该布局时,“[空]”文本元素被删除。输出中您将不会看到这些文本元素。将它们显示在布局视图中可使您了解文本元素的存在,但此时动态标签引用的值为空。

对整个文本元素字符串进行评估。例如,如果文本为:

Map Credits:<dyn type="document" property="name"/>"

并且文档中没有制作者名单信息,则“Map Credits:”仍然会显示在布局中,因为解析的文本元素字符串不为空。它包含静态文本。如果导出或打印地图,“地图制作者名单:”将显示在地图上。另一方面,如果文本为:

<dyn type="document" property="name"/>"

您将在显示屏上看到“[空]”,因为解析的文本元素字符串为空。当导出或者打印地图时,“[空]”将不显示。

当字符串为空时,如果您希望显示一个不同的值,则可以添加标签 emptyStr="<text>"。如果单个动态标记的解析结果为空,则使用 emptyStr 属性可以指定要显示的文本。以下述标签为例:

<dyn type="document" property="credits"/>

如果地图文档未包含制作者名单信息(可从地图文档属性 中访问),则布局上的结果将为 [空]。通过使用空属性,当没有可用信息时,您可以使用默认文本。该文本可能如下所示:

<dyn type="document" property="credits" emptyStr="There are no credits for this map."/>

布局上的结果可能如下所示:"There are no credits for this map."。此文本将在导出的或打印的地图上显示。

使用日期动态文本

系统提供了多种时间格式,您可以单独使用也可以组合使用。如果组合使用,则用于分隔每种格式元素的任意空格都将在输出字符串中显示。格式区分大小写。它们必须为表中显示的大写字符或者小写字符(例如,是 MM 而不是 mm)。用单引号括起来的格式化字符串中的字符出现在同一个位置,并且在输出字符串中无法更改。

例如,标签

<dyn type="date" format="ddd MMM yy"/>

会返回 Thu Sep 09。

日期格式

格式

描述

示例语法

示例输出

月、日、年的数字形式,且单位数日期没有前导零。

<dyn type="date" format="short"/>

9/7/2009

月和日(包括周几)为文本,年为数字。

<dyn type="date" format="long"/>

Thursday, September 7, 2009

month

月为文本,年为数字。

<dyn type="date" format="month"/>

September, 2009

d

数字形式的每月日期,且单位数没有前导零。

<dyn type="date" format="d"/>

7

dd

数字形式的每月日期,且单位数有前导零。

<dyn type="date" format="dd"/>

07

ddd

以三个字母的缩略形式显示的星期。此函数使用与指定区域设置相关的 LOCALE_SABBREVDAYNAME 值。

<dyn type="date" format="ddd"/>

Thu

dddd

以全名显示的星期。此函数使用与指定区域设置相关的 LOCALE_SDAYNAME 值。

<dyn type="date" format="dddd"/>

星期四

M

数字形式的月,且单位数没有前导零。

<dyn type="date" format="M"/>

9

MM

数字形式的月,且单位数有前导零。

<dyn type="date" format="MM"/>

09

MMM

以三个字母的缩略形式显示的月。此函数使用与指定区域设置相关的 LOCALE_SABBREVMONTHNAME 值。

<dyn type="date" format="MMM"/>

Sep

MMMM

以全名显示的月。此函数使用与指定区域设置相关的 LOCALE_SMONTHNAME 值。

<dyn type="date" format="MMMM"/>

九月

y

两位数的年份,但小于 10 的年份没有前导零。

<dyn type="date" format="y"/>

9

yy

两位数形式的年份,但小于 10 的年份有前导零。

<dyn type="date" format="yy"/>

09

yyyy

或者

yyyyy

由完整的四位数或者五位数来代表年份,取决于使用的日历。泰国佛教徒与韩国日历都使用五位数年份。对于以上两个日历,yyyy 形式将显示五位数年份,而对于其他所有受支持的日历,都将显示四位数年份。

<dyn type="date" format="yyyy"/>

2009

gg

时期/年代字符串。此函数使用与指定区域设置相关的 CAL_SERASTRING 值。如果要格式化的日期不带有相关的年代或时期字符串,此元素将被忽略。

<dyn type="date" format="gg"/>

使用时间动态文本

系统提供了多种时间格式,您可以单独使用也可以组合使用。如果组合使用,则用于分隔每种格式元素的任意空格都将在输出字符串中显示。格式区分大小写。它们必须为表中显示的大写字符或者小写字符(例如,是 ss 而不是 SS)。用单引号括起来的格式化字符串中的字符出现在同一位置,并且在输出字符串中无法进行更改。

例如,标签

Time:<dyn type="time" format= "HH:mm tt"/>

会返回 09:24 AM。

时间格式

格式

描述

示例语法

示例输出

小时、分钟与秒,且单位数小时没有前导零;12 小时制

<dyn type="time" format=""/>

3:04:09 PM

h

小时,且单位数小时没有前导零;12 小时制

<dyn type="time" format="h"/>

3

H

小时,且单位数小时没有前导零;24 小时制

<dyn type="time" format="H"/>

15

hh

小时,且单位数小时有前导零;12 小时制

<dyn type="time" format="hh"/>

03

HH

小时,且单位数小时有前导零;24 小时制

<dyn type="time" format="HH"/>

15

m

分钟,且单位数分钟没有前导零

<dyn type="time" format="m"/>

4

毫米

分钟,且单位数分钟有前导零

<dyn type="time" format="mm"/>

04

s

秒,且单位数秒没有前导零

<dyn type="time" format="s"/>

9

ss

秒,且单位数秒有前导零

<dyn type="time" format="ss"/>

09

t

单字符时间标签字符串(例如,A 或者 P)

<dyn type="time" format="t"/>

P

tt

多字符时间标签字符串(例如,AM 或者 PM)

<dyn type="time" format="tt"/>

PM

ArcMap 中提供的动态文本

还有许多标签不可直接从主菜单中访问。这些标签在下表中列出。如果您要将这些标签添加到地图布局,则需要先将它们添加到一个现有的文本元素中。只添加一个文本元素,打开该元素的属性,然后开始编辑。也可以通过使用格式化标签来自定义您的动态文本。

下表指定了 ArcMap 中提供的动态文本:

常规动态文本

描述

示例语法

计算机名称

<dyn type="computer"/>

必须手动添加。

用户名

<dyn type="user"/>

可从主菜单中访问。

当前日期

Date:<dyn type="date" format="short"/>

可从主菜单中访问。日期动态文本可进一步格式化。有关详细信息,请参阅本帮助主题中的使用日期动态文本部分。

当前时间

Time:<dyn type="time" format=""/>

可从主菜单中访问。时间动态文本可进一步格式化。有关详细信息,请参阅本帮助主题中的使用时间动态文本部分。

地图文档动态文本

描述

示例语法

标题

<dyn type="document" property="title"/>

可从主菜单中访问。

摘要

<dyn type="document" property="summary"/>

必须手动添加。

作者

<dyn type="document" property="author"/>

可从主菜单中访问。

类别

<dyn type="document" property="category"/>

必须手动添加。

描述

<dyn type="document" property="description"/>

必须手动添加。

标签

<dyn type="document" property="tags"/>

必须手动添加。

超链接基础地址

<dyn type="document" property="hyperlinkBase"/>

必须手动添加。

制作单位

<dyn type="document" property="credits"/>

必须手动添加。

文档名称

<dyn type="document" property="name"/>

可从主菜单中访问。

路径

<dyn type="document" property="path"/>

必须手动添加。路径包括地图文档名称。

服务图层制作者名单

Path:<dyn type="document" property="service layer credits" separator="\n"/>

可从主菜单中访问。这是 ArcGIS for Server 和第三方切片服务图层的属性/制作者名单。

文件夹

<dyn type="document" property="folder"/>

必须手动添加。此文件夹为地图文档所在的文件夹。它是没有文档名称的路径。

保存日期

<dyn type="document" property="date saved" format="short"/> <dyn type="document" property="time saved" format=""/>

可从主菜单中访问。可以如示例中所示那样将“date saved”和“time saved”标签一起使用,也可将它们分开使用。

打印日期

<dyn type="document" property="date printed" dateFormat="MM dd yy"/>

必须手动添加。

导出日期

<dyn type="document" property="date exported" dateFormat="MM dd yy"/>

必须手动添加。

数据框动态文本

描述

示例语法

坐标系

可从主菜单中访问。默认标签包括数据框的所有坐标参数,并且可能非常大。要访问各个坐标系元素,请参阅下一个表。

制作单位

<dyn type="dataFrame" name="DataFrameName" property="credits"/>

必须手动添加。

数据框名称

<dyn type="dataFrame" name="DataFrameName" property="name"/>

可从主菜单中访问。

这是在数据框属性 对话框中指定的识别数据框的名称。通过以下名称属性来标识数据框的当前名称:name="Current name of data frame"。该属性是动态文本元素与特定数据框之间的链接。每次更改数据框名称时,均会更新此属性的文本字符串值,同时更新动态文本。

然而,如果此名称属性值与任何地图数据框的当前名称均不匹配,则默认情况下,动态文本元素 (property="name") 会使用活动数据框的名称。名称属性的文本字符串值 (name="Unmatched name") 保持相同。而不使用默认数据框名称。它保留不匹配的文本,直到您手动更改此值以使其与数据框名称相互匹配或更改数据框名称以使其与此值相互匹配时为止。这允许您在名称属性中输入一个假名称,例如,Name:<dyn type="dataFrame" name="UseActiveDataFrameName" property="name"/>,以便使动态文本元素仅使用活动数据框名称,而不被绑定到任何特定数据框上。

描述

<dyn type="dataFrame" name="DataFrameName" property="description"/>

必须手动添加。

距离单位

<dyn type="dataFrame" name="DataFrameName" property="distance units"/>

可从主菜单中访问。

地图单位

<dyn type="dataFrame" name="DataFrameName" property="units"/>

必须手动添加。

参考比例

<dyn type="dataFrame" name="DataFrameName" property="reference scale"/>

可从主菜单中访问。

Rotation

<dyn type="dataFrame" name="DataFrameName" property="rotation"/>

必须手动添加。

比例尺

<dyn type="dataFrame" name="DataFrameName" property="scale"/>

可将其作为动态文本手动添加,或者使用插入菜单上的比例文本选项来添加。

开始时间

<dyn type="dataFrame" name="DataFrameName" property="start time"/>

这是由时间滑块的时间范围定义的开始时间。必须手动添加。如果没有看到时间值,则需要通过打开时间滑块 窗口来对此值进行初始化。如果时间包括日期与时间元素,则可以在属性之后追加 .date 或者 .time 以获取特定元素。例如,可以使用 property = "starttime.date"。这将仅返回开始时间的日期元素。在时间滑块选项 对话框中指定其格式。您可以通过在动态文本标签中应用一个格式元素来将此格式覆盖(例如 property="time.date" format = "long",这将返回长格式的日期)。

时间

<dyn type="dataFrame" name="DataFrameName" property="time"/>

这是由时间滑块定义的当前数据框时间。可从主菜单中获得。如果没有看到时间值,则需要通过打开时间滑块 窗口来对此值进行初始化。如果时间包括日期与时间元素,则可以在属性之后追加 .date 或者 .time 以获取特定元素。例如,可以使用 property = "starttime.date"。这将仅返回开始时间的日期元素。在时间滑块选项 对话框中指定其格式。您可以通过在动态文本标签中应用一个格式元素来将此格式覆盖(例如 property="time.date" format = "long",这将返回长格式的日期)。

结束时间

<dyn type="dataFrame" name="DataFrameName" property="end time"/>

这是由时间滑块的时间范围定义的结束时间。必须手动添加。如果没有看到时间值,则需要通过打开时间滑块 窗口来对此值进行初始化。如果时间包括日期与时间元素,则可以在属性之后追加 .date 或者 .time 以获取特定元素。例如,可以使用 property = "starttime.date"。这将仅返回开始时间的日期元素。在时间滑块选项 对话框中指定其格式。您可以通过在动态文本标签中应用一个格式元素来将此格式覆盖(例如 property="time.date" format = "long",这将返回长格式的日期)。

当您创建指定数据框的动态文本时,数据框将按照创建标签时所使用的名称进行引用。例如,如果当前活动数据框被命名为 My Map,并且您在数据框描述中插入了一个动态文本元素,则标签将会是

<dyn type="dataFrame" name="My Map" property="description"/>

如果您稍后在内容列表中或通过属性 对话框重新命名数据框,标签将会自动更新以反映此更改。例如,如果您将数据框的名称从 My Map 更改为 City Map,则现有数据框动态文本标签将自动更改为

<dyn type="dataFrame" name="City Map" property="description"/>

警告警告:
因为数据框标签按数据框名称进行引用,所以不建议两个或者两个以上的数据框使用相同的名称。动态文本将只能引用其中一个名称。

坐标系动态文本

描述

示例语法

左上角

<dyn type="dataFrame" name="DataFrameName" property="upperLeft" units="dms" decimalPlaces="4"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

上部中间位置

<dyn type="dataFrame" name="DataFrameName" property="upperMid" units="ddm" decimalPlaces="2"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

右上角

<dyn type="dataFrame" name="DataFrameName" property="upperRight"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

左侧中间位置

<dyn type="dataFrame" name="DataFrameName" property="midLeft"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

中心

<dyn type="dataFrame" name="DataFrameName" property="center"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

右侧中间位置

<dyn type="dataFrame" name="DataFrameName" property="midRight"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

左下角

<dyn type="dataFrame" name="DataFrameName" property="lowerLeft"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

底部中间位置

<dyn type="dataFrame" name="DataFrameName" property="lowerMid"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

右下角

<dyn type="dataFrame" name="DataFrameName" property="lowerRight"/>

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在其位置后追加 .x 或 .y 即可,例如,upperLeft.xcenter.y

投影坐标系

<dyn type="dataFrame" name="Layers" property="spatialReference" srProperty=" pcs"/>

必须手动添加。

地理坐标系

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty=" gcs"/>

必须手动添加。

基准面

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="datum"/>

必须手动添加。

投影

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="projection"/>

必须手动添加。

备注

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="remarks"/>

必须手动添加。

中央经线

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "centralMeridian" units="dms" decimalPlaces="2"/>

必须手动添加。

起始纬度

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "latitudeOfOrigin" units="dms" decimalPlaces="2"/>

必须手动添加。

起始经度

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "longitudeOfOrigin" units="dms" decimalPlaces="2"/>

必须手动添加。

中心纬度

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "latitudeOfCenter" units="dms" decimalPlaces="2"/>

必须手动添加。

中心经度

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "longitudeOfCenter" units="dms" decimalPlaces="2"/>

必须手动添加。

第一标准纬线

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "latitudeOf1st" units="dms" decimalPlaces="2"/>

必须手动添加。

第二标准纬线

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "latitudeOf2nd" units="dms" decimalPlaces="2"/>

必须手动添加。

第一标准经线

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "longitudeOf1st" units="dms" decimalPlaces="2"/>

必须手动添加。

第二标准经线

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "longitudeOf2nd" units="dms" decimalPlaces="2"/>

必须手动添加。

东偏移量

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="falseEasting" units="dms" decimalPlaces="2"/>

必须手动添加。

北偏移量

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "falseNorthing" units="dms" decimalPlaces="2"/>

必须手动添加。

标准纬线 1

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "standardParallel1" units="dms" decimalPlaces="2"/>

必须手动添加。

标准纬线 2

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty= "standardParallel2" units="dms" decimalPlaces="2"/>

必须手动添加。

比例因子

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="scaleFactor" decimalPlaces="2"/>

必须手动添加。

方位角

<dyn type="dataFrame" name="DataFrameName" property="spatialReference" srProperty="azimuth" decimalPlaces="2"/>

必须手动添加。

页面

描述

示例语法

页面名称

<dyn type="page" property="name"/>

可从主菜单或数据驱动页面 工具条访问。这与设置为“数据驱动页面”名称字段的属性字段的当前值相对应。

页码

<dyn type="page" property="number"/>

可从主菜单或数据驱动页面 工具条访问。这与设置为数据驱动页面页码的属性字段的当前值相对应。如果未指定页码字段,则页面将从设置为起始页码的值开始,并以 1 为增量进行编号。

页面索引

<dyn type="page" property="index"/>

必须手动添加。页面索引将忽略页码字段值与起始页码。例如,有 10 个数据驱动页面,并将起始页码设置为 3;但页面索引会将第一页报告为 1。

页码

<dyn type="page" property="count"/>

必须手动添加。这是数据驱动页面的总数。

相邻或邻近页面

<dyn type="page" property="PageNumber_NW"/>

必须基于字段名称手动添加。例如,标签是从名为 PageNumber_NW 的字段中进行提取。此字段将报告位于当前页面西北方向的相邻页面的名称。

如果索引图层为规则格网,则可以使用地理处理工具计算相邻字段来创建字段。

索引图层(数据驱动页面)属性

<dyn type="page" property="attribute" field="<Field Name>" domainlookup="true"/>

可从主菜单或数据驱动页面 工具条访问。这与指定数据驱动页面索引图层所选属性的当前值相互对应。它包括连接到索引图层的字段。

索引图层(数据驱动页面)显示表达式

Page <dyn type="page" property="expression"/>

可从主菜单或数据驱动页面 工具条访问。这与在图层属性 对话框的显示选项卡中设置的显示表达式的当前值相互对应。

了解有关在“数据驱动页面”中使用动态文本的详细信息

如何从主菜单中添加动态文本

  1. 单击主菜单上的插入 > 动态文本
  2. 从右拉菜单中选择您要添加的动态文本。
  3. 单击绘图 工具条上的选择元素工具 Select Elements,双击所添加的文本元素,然后将其拖动到页面布局中的所需位置。

如何添加不可从主菜单中访问的动态文本

  1. 单击主菜单上的插入 > 动态文本
  2. 从右拉菜单中选择任一动态文本。

    将动态文本添加到页面布局之后,要对文本元素进行编辑。

  3. 单击绘图 工具条上的选择元素工具 Select Elements,然后双击您刚添加的文本元素。
  4. 文本选项卡上文本框中显示的文本替换为您要使用的文本(和标签)。您可能会考虑从上述语法示例中进行复制并直接将其粘贴到文本输入框中。请确保复制时包含整个标签(< 到 >)。

如何编辑动态文本

  1. 单击绘图 工具条上的选择元素工具 Select Elements,然后双击您要编辑的文本元素。
  2. 文本选项卡上文本框中显示的文本替换为您要使用的文本(和标签)。您可能会考虑直接从上述语法示例中进行复制并将其粘贴到文本输入框中。请确保复制时包含整个标签(< 到 >)。

相关主题

5/10/2014