ArcGIS 绘制引擎间的绘制区别

ArcGIS Server 中的底图图层和优化的地图服务,通过使用高性能的绘制引擎来实现更好的性能和绘制质量。此绘制引擎为其支持的所有符号类型提供了出色的性能。

ArcMap 中显示的街道地图(左图)和使用优化的地图服务显示的街道地图(右图)
优化的地图服务绘制引擎(右图)包含多个功能(如抗锯齿)来改进地图外观。

此绘制引擎与 ArcMap 中使用的绘制引擎或标准地图服务不同,因此您应该了解采用优化的地图服务绘制地图后在地图外观上存在的一些重要区别。准备 窗口中的“警告”用于告知您其中的许多区别。

显示与绘制区别相关信息的“准备”窗口
对于许多绘制区别,“准备”窗口(通过分析底图图层或“地图服务发布”工具条打开)都会显示警告。

然而,因为判断外观上的区别具有一定的主观性,因此在显示地图时,您应该始终验证地图外观是否合适。如果您正在准备底图图层,请使用 ArcMap 中的底图图层来显示所有区别。当发布至优化的地图服务时,请使用准备 窗口,该窗口可通过地图服务发布 工具条访问。以下各部分内容描述了绘制中的某些区别,以及这些区别产生的原因。

文本和字符标记抗锯齿

在 ArcMap 和标准地图服务中,由字体平滑设置来控制文本和字符标记抗锯齿,此设置在计算机的显示设置中进行配置。这些设置是针对每个用户而设置的,并没有配置为地图服务的一部分。因此,当地图作为标准地图服务发布至服务器时,字体平滑行为可能会有所不同。

Windows 效果对话框,可对字体平滑属性进行更改
字体平滑设置在不同的操作系统之间有所变化。上图为 Windows XP 中的效果对话框。

在优化的地图服务中,这些设置是针对服务进行配置的,并且存储为地图服务定义的一部分。这些文本抗锯齿设置可以通过地图服务发布 工具条上的选项按钮访问。

ArcGIS Server 选项对话框
通过“地图服务发布”工具条上的“选项”按钮选择文本抗锯齿设置。

底图图层中绘制的文本始终通过强制选项进行绘制。请注意,底图图层中的标注将始终使用 ArcMap 中的标准显示进行绘制,并且将遵守上述的计算机设置。

因为底图图层和优化的地图服务绘制引擎使用不同的方式来启用文本和字符抗锯齿,而且用于执行抗锯齿的算法也是不同的,因此与标准地图服务相比,文本和字符标记的渲染可能会显示出一些区别。

使用文本抗锯齿与不使用文本抗锯齿(在 ArcMap 中)的效果对比图片
左图:ArcMap(无字体平滑)。右图:将字体抗锯齿设置为强制的优化的地图服务。

坐标取整区别

在 ArcMap 和标准地图服务中,通过整数坐标来指定屏幕上显示的元素。如果要素(如,线或标记)的实数坐标没有准确地位于该整数坐标上,那么将对其取整(上舍入或下舍入)。此操作可能会导致某些误差,特别是在线非常细或者线具有非常细的元素(如下管线)的情况下。在指定的缩放级别或显示范围内,大小小于一个像素的线将被上舍入为一个像素。

对于 ArcMap,在 96 dpi 时,2.6 磅(左图)和 1.9 磅(右图)的两个线符号之间没有视觉上的区别。
对于 ArcMap,在 96 dpi 时,2.6 磅(左图)和 1.9 磅(右图)的两个线符号之间没有视觉上的区别。

在底图图层和优化的地图服务中,绘制引擎可以使用亚像素坐标在地图上放置和绘制要素。这使得要素放置和符号系统更加准确。

磅值为 2.6 和 1.9 的优化的地图服务预览窗口的图像。
在底图图层和优化的地图服务中,2.6 磅的图像(左图)和 1.9 磅的图像(右图)区别非常明显。

但是,如果地图的符号系统是在 ArcMap 中初始设计的,那么底图图层或优化的地图服务中的外观可能会有所不同。这种情况在线符号系统中特别明显。

修正前后的线锯齿
左图:在优化的地图服务中渲染的高速公路符号的初始线宽度。右图:修正后 - 请注意,在修正后的版本中,下管线不再显示为虚线。

有关上述问题以及如何设计适合指定目标分辨率的线符号的详细信息,请参阅优化的地图服务中的线锯齿主题中的“设计适合特定分辨率的线”一节。在大多数情况下,在底图图层中不会出现此问题,因为底图图层会自动修正这个问题。

底图图层和优化的地图服务中的简单符号

ArcMap 中提供的简单符号(简单线符号、简单填充符号和简单标注符号)的显示方式有时可能不一致。由于简单符号中存在这些不一致,因此在底图图层或优化的地图服务中有时可以不同方式进行绘制。准备 窗口中的某个分析器可能会告知您其中的一些区别。

例如,使用虚线或点划线模式的简单线符号将不依据地图的参考比例,而是依据所请求的 dpi,通过不同的间距进行绘制。但在底图图层或优化的地图服务中,这些符号将依据地图参考比例,而且不会随所请求的 dpi 发生更改。

对于简单填充符号,“样式”属性实际上在 ArcMap 用户界面中是不可用的,但是许多开发实例与其他第三方代码片段可能在地图中创建这些符号。除了 esriSFSSolid 之外的其他样式在底图图层或优化的地图服务中均不受支持,并且分析时会出现错误警告。

对于简单标记符号,简单标记行为会随着标记显示的大小而更改,这会在大小和形状上引起一些变化。

底图图层和优化的地图服务始终以所请求的大小来显示标注符号。在标准地图服务或 ArcMap 中,当简单标记符号大小低于某个阈值时,它不会以比阈值小的方式绘制这种标记符号。这意味着,当到达此阈值时,底图图层或优化的地图服务将继续以准确的大小来显示这些符号。而标准地图服务和 ArcMap 不会这样,因此会导致明显的不匹配。

底图图层和优化的地图服务中的线整饰

当线整饰大于所整饰的要素的线长度时,ArcMap 中包含线整饰的线符号(如线箭头)将不会绘制线整饰。而对于底图图层和优化的地图服务所使用的绘制引擎,无论线的大小如何,都会始终绘制线整饰。在某些比例时,这会导致比 ArcMap 中更加凌乱的外观,但线整饰的绘制方式是一致的,也是可预测的。

底图图层和优化的地图服务中的颜色

底图图层和优化的地图服务使用的绘制引擎使用了颜色管理引擎。因此,某些颜色可能与 ArcMap 标准显示的外观颜色无法准确匹配。

ArcMap 应用程序和标准地图服务不使用颜色管理。特别是使用以下两项时,您会发现颜色上的区别:

查看 ArcMap 中的底图图层,或者使用通过地图服务发布 工具条打开的预览 窗口,您可以使用新图形引擎对地图外观进行评估,并确定颜色和符号系统是否为可接受的。

有一项操作可使优化的地图服务中的颜色区别最小化,即更改 ArcMap 中的显示器设置。当创作一个可在优化的地图服务中使用的地图时,这种做法十分有用。

要访问显示器设置,在任何符号属性 对话框中,单击颜色样本上的下拉菜单,然后选择更多颜色

简单颜色选取器

在“颜色选择器”对话框中,单击右上角的箭头按钮,选择显示器设置

颜色选择器对话框

显示器设置 对话框中,将Gamma 设置更改为 2.2,然后单击确定关闭对话框。

显示器设置对话框

这会将 ArcMap 中的 gamma 值更改为与特定颜色配置文件(该文件由底图图层和优化的地图服务的绘制引擎使用)更为匹配的 gamma 值,并且还会产生匹配程度更高的颜色变换。

注注:

此设置仅影响用户所绘制的地图外观,以及执行此修改操作的计算机。此设置也会应用到作为标准地图服务的地图。

底图图层和优化的地图服务中的字体处理区别

与 ArcMap 或标准地图服务相比,底图图层和优化的地图服务中的字体处理略有不同。有两个主要区别:

仿斜体或仿粗体是指字体在粗体或斜体样式中不可用的情况,或者属性组合没有安装相应字体的情况。例如,用户可能具有 Verdana 粗体和 Verdana 斜体,但是缺少 Verdana 粗斜体。

在这些情况下,ArcMap 或标准地图服务会试图对原始字体以图形的方式进行倾斜(斜体)或加粗(粗体),从而模拟这些属性。

ArcMap 中字体的仿斜体版本(左图)和未使用仿属性情况下优化的地图服务中显示的实际字体(右图)
ArcMap 中字体的仿斜体版本(左图)和未使用仿属性情况下优化的地图服务中显示的实际字体(右图)

这种处理方式通常与实际粗体或斜体版本的字型在视觉上是不对应的。事实上,对于某些字体(如作为标注符号而设计使用的 ESRI 字体),以粗体或斜体样式对其进行显示是没有意义的。底图图层和优化的地图服务仅通过系统中可用的字体和字体样式进行显示。

ArcMap 中字体的仿粗体版本(左图)和未使用仿属性情况下优化的地图服务中显示的实际字体(右图)
ArcMap 中字体的仿粗体版本(左图)和未使用仿属性情况下优化的地图服务中显示的实际字体(右图)

确保文本始终按预期的方式进行渲染。如果在文本中没有发现粗体或斜体属性,请检查并确保系统中有特定的字型样式可用。

字体连接和字体回退

字体包含许多特殊字符(如拉丁字母 A,汉字 qian [qian] 等)的定义。这些特殊字符位于不同的字符集(如西欧或拉丁)中,是由其创建者确定的。字体回退和字体连接方法用于显示在请求的字体中实际上并不存在的字符,这些方法采用包含这些字符的另一个相似字体来对这些字符进行绘制。这些方法通常使用仅包含东亚字符的字体显示拉丁字符,反之亦然。

在这些情况下,标准 ArcMap 显示将使用 Windows GDI(图形设备接口,内置于 Windows 的图形系统)来试图连接其他包含缺少字形的字体,这样即使缺少字符,也可以对文本字符串进行显示。在许多情况下,除了在原始字体与所连接的回退字体之间有一些区别之外,上述处理方式还会由于字距或其他特征的不匹配而导致奇怪的外观或行为(参阅下图)。

字体回退
在这种情况下,ArcMap 中的 Thaana 文本发生回退(左图)。请注意奇怪的字形间距。当字符在 Arial Unicode MS 字体中不存在时,优化的地图服务将对方框进行渲染。

由于上述问题以及一些其他问题,不推荐用户对任何地图采用字体回退的方式渲染专属字形。在底图图层或优化的地图服务中,将不会渲染所请求的字体中不存在的字形。预览 ArcMap 中的底图图层或预览 窗口中的地图服务可以确定发生这种情况的位置。

通常,最佳方法是使用包含要使用字符集字形的字体。在上例中,所选的 Arial Unicode MS 字体缺少 Thaana 字符集。为确保文本正确渲染,使用内嵌文本格式化标签来切换至包含 Thaana 字符的字体,如 MV Boli。

通过使用格式化标签避免字体回退
使用格式化标签确保使用合适的字体来渲染 Thaana 字符集,以在 ArcMap(左图)和优化的地图服务(右图)中都生成较好的外观。

确定字体是否发生回退的一个方法是复制文本并将其粘贴至写字板中。然后选择您怀疑可能使用了字体回退的文本。如果字体名称相对于字符串中光标的放置位置发生更改,那么可使用该字体来替换 ArcMap 中指定的字体。

在写字板中查看字体回退
当上述的 Syriac 文本在写字板中选中时,其以 Estrangelo Edessa 字体显示。从中复制这些文本的注记被设置为 Arial Unicode MS,这种字体的变化表明发生了回退。

字体替换

字体替换是一种相似性技术。这种技术方法在系统中不存在所请求字体的情况下使用不同的字体显示文本。例如,如果某个地图包含了使用 Helvetica 字体的文本,但是计算机中并没有安装 Helvetica 字体,那么该文本将以 Arial 字体代替显示。

底图图层和优化的地图服务可以像标准地图服务或 ArcMap 一样应用字体替换。但是,通常它只是一个用于确认地图所用字体在使用该地图的计算机(包括 ArcGIS Server 所在的计算机)上是否可用的好方法。

相关主题


7/10/2012