编辑要素数据

了解如何添加、更新和删除要素服务中的要素

通过 Editor 微件可以对要素图层进行添加、更新和删除要素。此微件允许您编辑几何属性。要使用微件,需确保您拥有访问和编辑要素图层的正确凭据,并在要素图层的项目页面中,将启用编辑属性设置为 true。凭据可从门户中生成,并可在项目属性页面上验证凭据和设置

在本教程中,您将使用 Editor 微件My Points 要素图层 中添加、更新和删除要素。

步骤

创建新 Pen

  1. 要开始使用,请完成显示地图教程 使用此 Pen

添加模块

  1. require 语句中,添加 FeatureLayerEditor 模块。

    GeoScene Maps SDK for JavaScript 提供有 AMD 模块ES 模块,但本教程基于 AMD。AMD require 函数使用引用来确定加载哪些模块 - 例如,您可以指定 "geoscene/Map" 来加载 Map 模块。加载模块后,它们将作为参数 (例如,Map) 传递给回调函数,以便在应用程序中使用。保持模块引用和回调参数的顺序相同是很重要的。有关不同类型模块的更多信息,请访问工具指南主题。

    展开
    代码块使用深色
                                                                  
    添加行。添加行。更改行
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
        require([
          "geoscene/config",
          "geoscene/Map",
          "geoscene/views/MapView",
    
          "geoscene/layers/FeatureLayer",
          "geoscene/widgets/Editor"
    
        ], function(geosceneConfig, Map, MapView, FeatureLayer, Editor) {
     
    展开

添加要素图层

使用 FeatureLayer 类来访问 My Points 要素图层。然后通过 layers 属性将要素图层添加到地图中。

  1. map 上方,创建 myPointsFeatureLayer 并设置其 url 属性以访问要素服务

    展开
    代码块使用深色
                                                                  
    添加行。添加行。添加行。添加行。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
          // Reference a feature layer to edit
          const myPointsFeatureLayer = new FeatureLayer({
            url: "https://services3.arcgis.com/arcgis/rest/services/my_points/FeatureServer"
          });
    
          geosceneConfig.apiKey = ;
    
          const map = new Map({
            basemap: "tianditu-vector", // Basemap layer service
    
          });
     
    展开
  2. map 中的 layers 属性设置为 myPointsFeatureLayer

    展开
    代码块使用深色
                                                                  
    添加行。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
          // Reference a feature layer to edit
          const myPointsFeatureLayer = new FeatureLayer({
            url: "https://services3.arcgis.com/arcgis/rest/services/my_points/FeatureServer"
          });
    
          geosceneConfig.apiKey = ;
    
          const map = new Map({
            basemap: "tianditu-vector", // Basemap layer service
    
            layers: [myPointsFeatureLayer]
    
          });
     
    展开

创建编辑器微件

通过 Editor 微件,可以以交互方式添加、更新和删除要素。该微件能自动检测到地图中的所有可编辑图层

  1. 创建 editor 并将其添加到 viewui 中。

    展开
    代码块使用深色
                                                                  
    添加行。添加行。添加行。添加行。添加行。添加行。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
          const view = new MapView({
            container: "viewDiv",
            map: map,
            center: [118.80543,34.02700],
            zoom: 13
          });
    
          // Editor widget
          const editor = new Editor({
            view: view
          });
          // Add widget to the view
          view.ui.add(editor, "top-right");
     
    展开
  2. 您应在浏览器的右上角看到此微件

编辑要素

使用 Editor 微件添加、更新和删除要素

  1. 如果应用程序未运行,请在右上角单击运行

  2. 编辑器中,单击添加要素。单击地图以创建具有以下属性的新要素

    • id100
    • nameMy Point
    • ratingGood

    单击添加将要素添加至 view。单击 < 以返回主窗口。

  3. 编辑器中,单击编辑要素。单击创建的要素并更新其属性值。

    • id101
    • nameAwesome Beach
    • ratingExcellent

    单击更新以更新 view 中的要素。单击 < 以返回主窗口。

  4. 编辑器中,单击编辑要素。单击编辑的要素,然后单击删除

运行应用程序

CodePen 中,运行代码以显示地图。

现在,您应能够My Points 要素图层中添加、更新和删除要素

下一步是什么?

要了解如何使用其他 API 功能,请参阅以下教程:

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。