美文网首页
ArcGIS API for JavaScript 4.x 标注

ArcGIS API for JavaScript 4.x 标注

作者: Xuds | 来源:发表于2022-04-19 16:19 被阅读0次

    标签

    概述

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

    场景视图

    所有具有属性的图层类型都支持标注labelingInfo,例如FeatureLayer。此属性指定为LabelClass对象的数组,其中包含labelExpressionInfolabelPlacementTextSymbol3DLayer。TextSymbol3DLayer类支持更改 label 图形的material  font  halo其他属性。点、折线和多边形支持标注。

    示例:平面与体积 3D 符号图层

    已知限制 (SceneView)

    目前一个特征只能有一个标签。如果一个特征满足多个LabelClasses的where条件,则只显示第一个匹配的LabelClass对应的标签。

    标签放置仅适用于图层。

    如果设置了TextSymbol3DLayer.size属性,它将覆盖Font.size属性。

    SceneView 的字体

    3D场景视图支持的字体系列取决于安装在用户计算机和 Web 浏览器上的字体。如果应用程序使用了未安装的字体,Font类将实现一个回退机制,该机制将使用默认字体系列值,即. 有关如何在WindowsMac上安装新字体的说明,请参阅这些参考资料。sans-serif

    本地未安装的字体也可以通过在 css 文件中定义@font-face来从 url 加载:

    @font-face {

      font-family: "MyFont";

      font-style: normal;

      font-weight: 400;

      font-display: auto;

      src: url("./my-font.ttf") format("truetype");

    }

    并从符号层中的Font.family属性引用它:

    const labelSymbol = {

      type: "label-3d",

      symbolLayers: [

        {      type: "text", 

         material: {        color: [0, 0, 0, 0.8]      }, 

         font: {        size: 30,        family: "MyFont"      }

        }

      ],}

    地图视图

    FeatureLayer、CSVLayer 和 StreamLayer

    2D MapViews中的FeatureLayerCSVLayerStreamLayerOGCFeatureLayerSublayer支持标注。labelingInfo属性被指定为LabelClass对象的数组,其中包含labelExpressionInfolabelPlacementTextSymbol。该类支持更改标签图形的colorfonthalo和其他属性。点、折线和多边形支持标注。TextSymbol

    示例:多行标签

    已知限制 (MapView)

    Font.familyFont.styleFont.weight属性的支持基于托管字体文件的.pbf格式。默认情况下,字体在https://static.arcgis.com/fonts. 可以通过设置esriConfig.fontsUrl属性来配置 URL。查看可用字体系列的字体

    FeatureLayer、CSVLayer 和 StreamLayer 的字体

    Font.familyFont.styleFont.weight属性的支持基于托管字体文件的.pbf格式。默认情况下,可用的字体大多与 Esri 矢量底图使用的字体相同。这些字体列在Esri 矢量底图参考文档的Esri Vector Basemaps Resources\Fonts标题下。这些字体可通过https://static.arcgis.com/fonts. 通过设置esriConfig.fontsUrl属性,可以将 URL 配置为指向您自己的字体资源。

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

    带有bold,italic或两者的字体需要在Font.styleFont.weight属性中设置这些属性,而不是在Font.family中设置。要查看哪些字体支持哪些类型的字符(例如拉丁文、西里尔文、CJKV),您可以在Microsoft TypographyGoogle Fonts中搜索字体名称。

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

    2D MapView 当前支持的字体列表:

    字体预览代码

    详见官网https://developers.arcgis.com/javascript/latest/labeling/

    地图图像层

    通过在Sublayer类上设置labelingInfo属性, MapImageLayer支持标注。该属性被指定为LabelClass对象的数组,其中包含labelExpressionlabelPlacementTextSymbol。该类支持更改标签图形的colorfonthalo和其他属性。点、折线和多边形支持标注。labelingInfoTextSymbol

    示例:MapImageLayer - 标签子层特征

    MapImageLayer 的字体

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

    相关文章

      网友评论

          本文标题:ArcGIS API for JavaScript 4.x 标注

          本文链接:https://www.haomeiwen.com/subject/tknsertx.html