MapImageLayer - 从动态工作区探索数据

尝试一下在线预览

此示例演示如何使用智能映射 渲染器创建器 为从 动态数据图层 创建的 Sublayer 生成渲染器。 动态图层将来自动态工作空间中表的祖先数据连接到地图服务图层。 向用户提供选择元素,允许他/她根据不同的祖先变量和分类方法动态更改渲染器。

要使用智能映射创建器方法生成渲染器,您必须首先使用与子图层相同的数据源创建  FeatureLayer 。  createFeatureLayer()  方法是一种方便的方法,用于从子图层创建匹配的 FeatureLayer 实例。

         
1
2
3
4
5
6
7
8
9
// Get the sublayer to explore
const ancestrySublayer = layer.sublayers.find((sublayer) => {
  return sublayer.title === "% population with selected ancestry";
});

ancestrySublayer.createFeatureLayer().then((ancestryFeatureLayer) => {
  // use the feature layer instance for some other purpose,
  // such as generating a renderer
});

使用 FeatureLayer 实例  生成  渲染器。 然后将输出渲染器设置回 Sublayer 实例。

             
1
2
3
4
5
6
7
8
9
10
11
12
13
const params = {
  // set FeatureLayer as input
  layer: ancestryFeatureLayer,
  // Arcade is used to normalize and round the data
  valueExpression: "Round( ( $feature['" + ancestrySelect.value + "'] / $feature['states.POP2007'] ) * 100, 1);",
  view: view, // required with valueExpression
  classificationMethod: classSelect.value
};

colorRendererCreator.createClassBreaksRenderer(params).then((response) => {
  // set the renderer on the sublayer
  ancestrySublayer.renderer = response.renderer;
});

请注意,此示例中使用 Arcade 表达式 生成渲染器。 请注意,仅在从 GeoScene Pro 发布的 GeoScene Enterprise Map Services 版本 10.6.1 及更高版本中支持 Arcade 表达式和可视变量。

选择元素放置在 LayerList 微件的 面板 内容中。 请注意,单个列表项可以在同一面板中包含多个内容项。 在这种情况下,我们添加包含选择元素的 div 元素和一个 Legend 实例(使用 legend 帮助器字符串表示)作为内容项数组。

              
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Set LayerList with two content elements in the same panel
// 1. A div element containing the select elements for data exploration
// 2. a legend instance
const layerList = new LayerList({
  view: view,
  listItemCreatedFunction: (event) => {
    const item = event.item;
    item.panel = {
      content: [document.getElementById("infoDiv"), "legend"],
      open: true
    };
  }
});
view.ui.add(layerList, "top-right");

注意

请记住,在大多数应用程序中应避免 生成 渲染器,因为会影响最终用户的性能成本。 如 智能制图 指南主题所述,Smart Mapping API 设计用于两种类型的应用程序:数据探索应用程序和类似于 GeoScene Online 的可视化创作应用程序。 在所有其他情况下,渲染器应保存到图层或使用任何 渲染器类 手动创建。

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