标注

概述

API 中的许多类都支持标注功能。但是,根据图层类型、几何类型以及是在 2D 还是 3D 模式下工作,可以使用不同的属性和资源。

SceneView

在 3D SceneViews 中,FeatureLayerCSVLayerSceneLayerStreamLayerOGCFeatureLayerSublayer 都支持标注。labelingInfo 属性被指定为 LabelClass 对象的数组,其中包含 labelExpressionInfolabelPlacementTextSymbol3DLayerTextSymbol3DLayer 类支持更改标注图形的材料字体光晕和其他属性。点、线和面都支持标注。

已知限制(SceneView)

SceneView 的字体

3D SceneViews 支持的字体系列取决于用户计算机上安装的字体和 Web 浏览器。如果应用使用未安装的字体,则 Font 类将实现一种回退机制,该机制将使用默认字体系列值,即 sans-serif

当使用 @font-face 加载字体时,在渲染标注时字体可能尚不可用。在这种情况下,标注要么使用默认字体,要么使用不受支持的字符符号渲染,以防默认字体不包含这些字符。为避免这种情况,请通过向 head 部分添加 link 元素并将 rel 属性设置为 preload 来预加载字体:

 
1
<link rel="preload" as="font" href="./my-font.ttf" type="font/ttf">

在 css 文件中定义字体:

       
1
2
3
4
5
6
7
@font-face {
   font-family: "MyFont";
   font-style: normal;
   font-weight: 400;
   font-display: auto;
   src: url("./my-font.ttf") format("truetype");
}

并将其用于标注:

               
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const labelSymbol = {
  type: "label-3d",
  symbolLayers: [
    {
      type: "text",
      material: {
        color: [0, 0, 0, 0.8]
      },
      font: {
        size: 30,
        family: "MyFont"
      }
    }
  ],
}

有关如何在 WindowsMac 上安装新字体的说明,请参阅这些参考。

MapView

FeatureLayer、CSVLayer 和 StreamLayer

在 2D MapViews 中,FeatureLayerCSVLayerStreamLayerOGCFeatureLayerSublayer 支持标注。labelingInfo 属性被指定为 LabelClass 对象的数组,该数组包含 labelExpressionInfolabelPlacementTextSymbolTextSymbol 类支持更改标注图形的颜色字体光晕和其他属性。点、线和面支持标注。

已知限制(MapView)

FeatureLayer、CSVLayer 和 StreamLayer 的字体

Font.familyFont.styleFont.weight 属性的支持基于 .pbf 格式的托管字体文件。默认情况下,可用字体与 GeoScene 矢量底图使用的字体大致相同。这些字体可通过 https://doc.geoscene.cn/resources/fonts 获得。可以通过设置 geosceneConfig.fontsUrl 属性将 URL 配置为指向您自己的字体资源。

如果字体不可用,它将使用默认字体系列,即 sans-serif。这将使用 Arial Unicode MS 字体文件。

bolditalic 或二者的字体要求在 Font.styleFont.weight 属性中设置这些属性,而不是在 Font.family 中设置。

请注意,这些字体也适用于 TextSymbol,无论它是在 2D MapView 中用作图形还是用作标注。

MapImageLayer

通过在 Sublayer 类上设置 labelingInfo 属性,MapImageLayer 可支持标注。labelingInfo 属性被指定为 LabelClass 对象的数组,其中包含 labelExpressionlabelPlacementTextSymbolTextSymbol 类支持更改标注图形的颜色字体光晕和其他属性。点、线和面都支持标注。

MapImageLayer 的字体

MapView 中, MapImageLayers 支持的字体系列取决于用于发布图层的 GeoScene Server 上安装的字体。要检查 GeoScene Server 上可用的字体,请运行 Home > services > System > PublishingTools (GPServer) 下的 Available Fonts 任务(需要管理员访问权限)。要添加新字体,必须将该字体安装在您的计算机上,并通过使用 GeoScene Desktop 注册字体来供 GeoScene Server 访问。如果应用使用未安装的字体,则 Font 类将实现一种回退机制,该机制将使用默认字体系列值,即 sans-serif

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.