处理动态文本

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

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

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

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

保存日期:<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 等其他通用修饰符进一步自定义动态文本。

从主菜单添加动态文本

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

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

编辑动态文本

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

例如,假设有若干人要访问您的地图并对其进行编辑,并且您希望跟踪上次使用该地图的人员以及使用时间。布局上的文本可能如下所示:“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:”仍然会显示在布局中,因为解析的文本元素字符串不为空。它包含静态文本。如果要导出或打印该地图,则“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

月为文本,年为数字。

<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

mm

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

<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"/>

可从主菜单中访问。

Path

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

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

文件夹

<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"/>

可从主菜单中访问。

描述

<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"/>

可从主菜单中访问。

旋转

<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.x 或者 center.y

上部中间位置

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

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

右上

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

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

左侧中间位置

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

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

中心

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

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

右侧中间位置

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

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

左下角

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

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

底部中间位置

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

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

右下角

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

必须手动添加。语法示例返回坐标对。如果您只需要其中一个坐标,则在位置之后只追加 .x 或 .y 即可。例如,upperLeft.x 或者 center.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"

再结合“数据驱动页面”索引图层的任意属性字段,可以创建动态文本。例如,如果在索引图层上有一个名为 POPULATION 的属性,则可以使用此属性字段来创建下面的动态文本:

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

以动态显示布局中每个页面的 POPULATION 值。

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

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

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

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

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

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

如何编辑动态文本

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

相关主题


7/10/2012