中文

问题:更改子类型字段不会填充 ArcGIS Online 中的预期字段

说明

子类型是表或要素类中基于属性字段分组的记录。子类型通过创建编码值来实现,因此它必须与短整型或长整型数据类型的字段相关联。每个整数值代表子类型中的一个要素。例如,RoadClass 子类型中的下列编码可能会代表街道要素类中的有效类:

  • 0 - 地方街道
  • 1 - 二级街道
  • 2 - 主街道

每个子类型可以有各自的一组默认值。在以上示例中,地方街道子类型速度限制属性的默认值设置为 25 英里每小时,而主街道子类型的默认值为 35 英里每小时。无论在何时向街道要素类添加地方街道,都会自动将其速度限制属性设置为每小时 25 英里。 当添加主干道时,速度限制将设置为默认值 35 英里/小时。

但是,在 ArcGIS Online 中修改现有要素、编辑子类型字段时,不会以在 ArcGIS Desktop 中的相同方式来应用已编辑字段的默认值。 在 web 地图中,从下拉列表中更改子类型值时,不会使用默认值来自动更新随附字段;该字段将留空,并且需要使用编辑器来选择其中一个可用选项。

原因

这是 JavaScript 应用程序编程接口 (API) 中的已知限制。 在 ArcGIS Online web 地图中编辑要素时,仅在创建新要素时,才会显示与子类型相关联的默认属性域 JavaScript API。

解决方案或解决方法

此行为有以下三个替代选项:

  • 选项 1:基于默认的预配置要素模板,使用现有要素模板来创建新要素。 如果在发布过程之前创建了要素模板,则应该已使用基于特定要素模板添加新要素时所设置的默认属性域和子类型值创建了属性值。
    注:
    要素模板定义创建要素所需的全部信息:存储要素的图层、创建的要素所应具有的属性以及创建要素所使用的默认工具。 
    
    一个图层可关联多个模板,其中每个模板都可具有不同的默认设置。 例如,如果某道路图层包含高速公路、主干道和地方干道三个类别,则可以采用三个不同的模板,每个模板可为每种类型的道路设置不同的默认属性。 这样,您从一开始就可以轻松地新建所需类型的道路。

    如果在发布过程之前未创建要素模板,则可以根据原始要素类生成要素模板,然后重新发布和覆盖服务,或者创建服务的本地副本并向其添加要素模板,然后重新发布和覆盖服务。

    要素模板可用后,可以使用相应的模板来创建新要素并删除旧要素,然后根据需要调整属性值。
     
  • 选项 2:为每个独立字段配置和分配属性域,然后重新发布服务。 发布到 ArcGIS Online 之前,请按照以下步骤创建属性域并将其分配给 ArcMap 中的独立字段。
    1. 在目录树中,右键单击要与属性域相关联的表或要素类。
    2. 单击“属性”。
    3. 单击“字段”选项卡。
    4. 单击要与属性域相关联的字段。
    5. 单击“属性域”旁的字段,再单击下拉箭头,然后单击要与该字段关联的属性域。 (列表中仅显示适用于此字段类型的属性域。)
    6. 单击“应用”和“确定”。
    7. 再次将要素类发布到 ArcGIS Online。 现在,在要素的弹出窗口中编辑属性时,可以使用属性域的下拉列表。
  • 选项 3:在项目详细信息页面的“数据”选项卡中编辑属性域和子类型。
    1. 在 ArcGIS Online 中,转至我的内容,然后选择具有属性域和子类型的目标要素图层。
    2. 单击要素图层名称旁的箭头,然后从下拉列表中选择查看项目详细信息
    3. 在要素图层的项目详细信息页面中,单击数据选项卡。
    4. 双击表中属性域或子类型的值以对其进行编辑。

      Editing subtypes in ArcGIS Online

相关信息