具有多边形和类型的 SceneModification 集合以应用客户端修改。SceneModifications 可以应用于 IntegratedMeshLayer.modifications 属性。
IntegratedMeshLayer 的修改 需要与 IntegratedMeshLayer 位于相同的空间参考中。WGS84 和 WebMercator 之间的重投影将自动完成。可以使用客户端投影引擎将几何图形重新投影到其他空间参考。
构造函数
属性概述
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
整数 | 更多信息 集合中的项数。 | 更多信息 | Collection |
属性详情
-
类的名称。声明的类名的格式为
geoscene.folder.className
。
-
集合中的项数。
方法概述
名称 | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
更多信息 将单个项添加到集合中。 | 更多信息 | Collection | ||
更多信息 将多个项添加到集合中。 | 更多信息 | Collection | ||
* | 更多信息 返回指定索引处的项,允许使用正整数和负整数。 | 更多信息 | Collection | |
SceneModifications | 更多信息 创建此对象的克隆。 | 更多信息 | SceneModifications | |
Collection | 更多信息 创建一个新集合,其中包含原始集合中的项与输入数组或集合中的项联接。 | 更多信息 | Collection | |
布尔值 | 更多信息 在实例上发出事件。 | 更多信息 | Collection | |
布尔值 | 更多信息 确定集合中的所有项目是否通过 | 更多信息 | Collection | |
Collection | 更多信息 根据 | 更多信息 | Collection | |
* | 更多信息 如果该项目通过 | 更多信息 | Collection | |
整数 | 更多信息 如果该项目通过 | 更多信息 | Collection | |
Collection | 更多信息 展平包含至少一个子集合的分层集合。 | 更多信息 | Collection | |
更多信息 对集合中的每个项执行输入函数。 | 更多信息 | Collection | ||
* | 更多信息 创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象中的值对其进行初始化。 | 更多信息 | SceneModifications | |
* | 更多信息 返回指定索引处的项。 | 更多信息 | Collection | |
布尔值 | 更多信息 指示实例上是否存在与提供的事件名称匹配的事件侦听器。 | 更多信息 | Collection | |
布尔值 | 更多信息 测试新集合中是否存在项。 | 更多信息 | Collection | |
整数 | 更多信息 返回集合中元素的索引。 | 更多信息 | Collection | |
String | 更多信息 创建集合中项的字符串表示形式。 | 更多信息 | Collection | |
整数 | 更多信息 回集合中元素的最后一个索引。 | 更多信息 | Collection | |
Collection | 更多信息 将每个集合项传递给 | 更多信息 | Collection | |
Object | 更多信息 在实例上注册事件处理程序。 | 更多信息 | Collection | |
* | 更多信息 从集合中删除最后一项并将其返回。 | 更多信息 | Collection | |
整数 | 更多信息 将项添加到集合的末尾。 | 更多信息 | Collection | |
* | 更多信息 使用 | 更多信息 | Collection | |
* | 更多信息 使用 | 更多信息 | Collection | |
更多信息 从集合中删除项。 | 更多信息 | Collection | ||
更多信息 从集合中删除所有项。 | 更多信息 | Collection | ||
* | 更多信息 从集合中指定索引处的项。 | 更多信息 | Collection | |
* | 更多信息 从集合中指定索引处的项。 | 更多信息 | Collection | |
* | 更多信息 将集合中的项移动到指定的索引。 | 更多信息 | Collection | |
Collection | 更多信息 就地反转集合。 | 更多信息 | Collection | |
* | 更多信息 从集合中删除第一项(索引 0 处),并返回该项。 | 更多信息 | Collection | |
Collection | 更多信息 创建由原始集合的一部分组成的新集合。 | 更多信息 | Collection | |
布尔值 | 更多信息 确定集合中的项目是否通过 | 更多信息 | Collection | |
更多信息 对集合进行就地排序。 | 更多信息 | Collection | ||
Array | 更多信息 删除现有项目和/或将新项目添加到集合中。 | 更多信息 | Collection | |
Array | 更多信息 返回一个新的数组对象,其中包含集合的项。 | 更多信息 | Collection | |
Object | 更多信息 将此类的实例转换为其 GeoScene portal JSON 表示形式。 | 更多信息 | SceneModifications | |
整数 | 更多信息 将一个或多个项添加到集合的开头。 | 更多信息 | Collection |
方法详情
-
add(item, index)inherited
-
将单个项添加到集合中。将项添加到集合后,将触发更改事件。
参数:item *要添加的项。
index Number可选集合中要添加项目的位置的从零开始的索引。如果未指定,项目将添加到最后。
示例:let gpc = new Graphic(); // Creates a new graphic let layer = new GraphicsLayer(); // Creates a new graphics layer layer.graphics.add(gpc); // Adds graphic to layer's graphics collection
-
addMany(items, index)inherited
-
将多个项添加到集合中。将项添加到集合后,将触发更改事件。
参数:items Array|Collection要添加的项目的数组或集合。
index Number可选集合中要添加项目的位置的从零开始的索引。如果未指定,项目将添加到最后。
示例:// Creates two new graphics let gpc1 = new Graphic(); let gpc2 = new Graphic(); let layer = new GraphicsLayer(); // Creates a new graphics layer // Adds both graphics to layer's graphics collection layer.graphics.addMany([gpc1, gpc2]);
-
起始版本:GeoScene API for JavaScript 4.23
-
返回指定索引处的项,允许使用正整数和负整数。负整数从数组中的最后一项开始倒数。
参数:index Number要检索的集合中项目的索引。它可以是集合末尾的相对索引。
返回:类型 说明 * 集合中的项目存储在指定索引处。 - 另请参阅:
示例:// get the layer at the first position let firstLayer = map.layers.at(0); // get the layer at the last position let lastLayer = map.layers.at(-1);
-
clone(){SceneModifications}
-
创建此对象的克隆。
返回:类型 说明 SceneModifications 调用此方法 SceneModifications 实例的克隆。
-
-
创建一个新集合,其中包含原始集合中的项与输入数组或集合中的项联接。
参数:value Array|Collection要追加到现有集合的数组或集合。
返回:类型 说明 Collection 一个新的集合,由集合中调用此方法的项与输入项组成。 - 另请参阅:
示例:// creating a collection of all the basemap's layers. let basemap = map.basemap; let basemapLayers = basemap.baseLayers.concat(basemap.referenceLayers);
-
确定集合中的所有项目是否通过
callback
定义的测试。集合中的每一项都被传递到回调中,直到返回false
值。参数:callback ItemTestCallback为集合中的每个项目调用的函数。
返回:类型 说明 布尔值 如果对 callback
的每次调用都返回true
,则返回true
。如果至少一个callback
调用返回false
,则返回false
。- 另请参阅:
示例:let meetsStandardSize = graphicsLayer.graphics.every(function(item, i){ // Tests each geometry's area to see if it is greater than 1,000 acres return calculateArea(item.geometry) > 1000; });
-
-
根据
callback
函数定义的测试过滤集合的项目。每个项目都被传递到callback
函数中,如果项目通过测试,则返回true
,否则返回false
。参数:callback ItemTestCallback定义用于确定是否在新集合中返回项目的测试的函数。
返回:类型 说明 Collection 返回包含通过过滤器测试的项目的新集合。 - 另请参阅:
示例:// filteredLayers is a Collection of all the non-visible layers in the map let filteredLayers = map.layers.filter(function(layer){ return !layer.visible; });
-
-
如果该项目通过
callback
函数中定义的测试,则返回集合中的项目。每个项目都被传递到callback
函数中,如果项目通过测试,则返回true
,否则返回false
。参数:callback ItemTestCallback将评估集合中每个项目的测试函数。如果项目通过测试,则返回
true
,如果失败,则返回false
。返回:类型 说明 * 集合中满足测试功能的第一个项目。 - 另请参阅:
示例:// If the id of a map layer is already known, get the layer that matches the id let myLayer = map.layers.find(function(layer){ return layer.id === "speciesLyr01"; }); // myLayer references the layer in map with ID "speciesLyr01"
-
如果该项目通过
callback
函数中定义的测试,则返回集合中项目的索引。每个项目都被传递到callback
函数中,如果项目通过测试,则返回true
,否则返回false
。参数:callback ItemTestCallback将评估集合中每个项目的测试函数。如果项目通过测试,则返回
true
,如果失败,则返回false
。返回:类型 说明 整数 返回满足测试函数的集合项的索引。如果项目未通过测试,则返回 -1
。示例:// gpcIndex is assigned the index of the first graphic whose name // property is 'Redlands'. This result can be used in getItemAt() let gpcIndex = graphicsLyr.graphics.findIndex(function(item){ return item.attributes.name === "Redlands"; });
-
-
展平包含至少一个子集合的分层集合。集合中的每个项目都传递给
callback
函数,该函数应检查开发人员指定的子集合。返回所有项目(父项和子项)的平面集合。这对于用户想要搜索地图中的所有图层(包括 GroupLayer 的图层和 MapImageLayer 的子图层)的场景很有用。回调应返回项的子集合。如果层次结构中存在多个级别的集合,则此方法将以递归方式对所有子集合执行。
参数:callback ItemCallback将评估集合中的每个项的函数。
返回:类型 说明 Collection 返回原始集合中所有项及其子项的平面集合。 示例:// create a MapImageLayer with several sublayers and add to a map // containing another GraphicsLayer let layer = new MapImageLayer({ sublayers: [ ... ] }); let map = new Map({ layers: [ layer, new GraphicsLayer() ] }); // A flat collection of all layers and sublayers // (if layer is a MapImageLayer) in the map. // This collection may be searched or used for other purposes let allLayersAndSublayers = map.layers.flatten(function(item){ return item.layers || item.sublayers; });
-
forEach(callback)inherited
-
对集合中的每个项执行输入函数。
参数:callback ItemCallback为集合中的每个项目调用的函数。
示例:graphicsLayer.graphics.forEach(function(item, i){ // Do something here to each graphic like calculate area of its geometry calculateArea(item.geometry); });
-
fromJSON(json){*}static
-
创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象中的值对其进行初始化。传递到输入
json
参数的对象通常来自对 REST API 中的查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。请参阅指南中的 fromJSON() 主题,了解有关何时以及如何使用此功能的详细信息和示例。参数:json ObjectGeoScene 格式的实例的 JSON 表示形式。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。
返回:类型 说明 * 返回此类的新实例。
-
-
返回指定索引处的项。
参数:index Number要检索的集合中项目的从零开始的索引。
返回:类型 说明 * 集合中的项目存储在指定索引处。 示例:// Assigns the base layer at index 0 to baseLayer let baseLayer = map.basemap.baseLayers.getItemAt(0);
-
测试新集合中是否存在项。
参数:searchElement *要在集合中搜索的项目。
返回:类型 说明 布尔值 true
如果该项目在集合中。示例:// check if a layer is in the map's operational layers. if (view.map.layers.includes(myLayer)) { // ... }
-
返回集合中元素的索引。
参数:searchElement *要在集合中搜索的项目。
fromIndex Number可选如果您不想搜索整个集合或不想从头开始搜索,请使用。
返回:类型 说明 整数 在集合中找到的第一个匹配项的位置,如果没有匹配项,则为 -1。 示例:// index is the index of the first graphic in the // graphics layer that matches the input graphic let index = graphicsLayer.graphics.indexOf(graphic);
-
创建集合中项的字符串表示形式。
参数:separator String可选默认值:,最终字符串中每个项目之间使用的分隔符。
返回:类型 说明 字符串 项目的字符串表示形式。 - 另请参阅:
示例:let stringCollection = new Collection(["how", "are", "you", "doing?"]); let phrase = stringCollection.join(" "); // Prints "how are you doing?" console.log(phrase);
-
回集合中元素的最后一个索引。
参数:searchElement *要在集合中搜索的项目。
fromIndex Number可选如果您不想搜索整个集合,或者不想从末尾搜索,请使用。
返回:类型 说明 整数 在集合中找到的最后一个匹配项的位置,如果没有匹配项,则为 -1。 示例:// index is the index of the first graphic in the // graphics layer that matches the input graphic let index = graphicsLayer.graphics.lastIndexOf(graphic);
-
-
将每个集合项传递给
callback
函数并返回一个新的返回值数组。例如,如果您有一个数字集合,并且希望将每个数字加 10,则可以使用map()
创建一个新集合,其中相同的数字增加 10。参数:callback ItemMapCallback处理集合中的每个项目并在原始项目的相同索引处返回新值的函数。
返回:类型 说明 Collection 返回一个新集合,其中包含从 callback
生成的新项目。- 另请参阅:
示例:// Gets the geometries of the graphics and assigns them to a new Collection let geoms = graphicsLayer.graphics.map(function(item, i){ return item.geometry; });
-
在实例上注册事件处理程序。调用此方法以将事件与侦听器挂钩。
参数:要侦听的事件或事件数组。
listener Function事件触发时调用的函数。
返回:类型 说明 Object 返回带有 remove()
方法的事件处理程序,应调用该方法以停止侦听事件。属性 类型 说明 remove 函数 调用时,从事件中删除侦听器。 示例:view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
-
从集合中删除最后一项并将其返回。
返回:类型 说明 * 集合中的最后一项。 - 另请参阅:
示例:// Removes the last layer in the map and stores it in lastLayer let lastLayer = map.layers.pop();
-
将项添加到集合的末尾。
参数:item *要添加到集合末尾的项目或以逗号分隔的项目列表。
返回:类型 说明 整数 集合的新长度。 - 另请参阅:
示例:// Adds a new graphic to the end of the graphics collection on a GraphicsLayer graphicsLyr.graphics.push(newGraphic);
// Adds three new graphics to the end of the GraphicsLayer's graphics collection graphicsLyr.graphics.push(g1, g2, g3);
-
-
使用
callback
将集合中的所有项目(从左到右)减少为单个变量。参数:callback ItemReduceCallback处理集合中的每个项目并将其附加到前一个项目的函数。
返回:类型 说明 * 返回表示集合项目减少的值。
-
-
使用
callback
将集合中的所有项目(从右到左)减少为单个变量。参数:callback ItemReduceCallback处理集合中的每个项目并将其附加到前一个项目的函数。
initialValue *可选用作在
callback
中处理的第一个元素的项目。返回:类型 说明 * 返回表示集合项目减少的值。
-
remove(item)inherited
-
从集合中删除项。从集合中删除项目后会触发更改事件。
参数:item *要移除的项。
示例:let layer = map.layers.getItemAt(4); // Removes the fifth layer from the map map.layers.remove(layer);
-
removeAll()inherited
-
从集合中删除所有项。
示例:// Removes all layers from the map map.layers.removeAll();
-
-
从集合中指定索引处的项。从集合中删除项目后会触发更改事件t。
参数:index Number要删除的项目的索引..
返回:类型 说明 * 如果集合中存在,则删除的项目,否则 undefined
。示例:// Removes the layer at index 4 of the map map.layers.removeAt(4);
-
-
从集合中指定索引处的项。如果一个项目在集合中多次出现,则仅删除第一次出现。从集合中删除项目后会触发更改事件t。
参数:items Array|Collection要删除的项目。
返回:类型 说明 * 集合中存在的已删除项目。 示例:let refLayers = [refLyr1, refLyr2, refLyr3]; // Removes three reference layers in the refLayers // collection from the basemap's referenceLayers map.basemap.referenceLayers.removeMany(refLayers);
-
-
将集合中的项移动到指定的索引。从集合中移动项目后会触发更改事件。
参数:item *要移动的项。
index Number要将项目移动到的索引。
返回:类型 说明 * 被移动的项目。如果 item
不在集合中,则undefined
。示例:// Get the first two layers in a map let layer1 = map.layers.getItemAt(0); let layer2 = map.layers.getItemAt(1); // Moves the second layer to the first position in the map.layers Collection // effectively swapping the positions of layer1 and layer2 map.layers.reorder(layer2, 0);
-
-
就地反转集合。
返回:类型 说明 Collection 反向集合。 示例:// Reverse layers from the map map.layers.reverse();
-
-
从集合中删除第一项(索引 0 处),并返回该项。然后集合的其余项目从它们之前的位置向下移动一个索引。
返回:类型 说明 * 集合中的第一项。 - 另请参阅:
示例:// Removes the first layer in the map and stores it in firstLyr let firstLyr = map.layers.shift();
-
-
创建由原始集合的一部分组成的新集合。
参数:begin Number可选要提取的第一项的索引。
end Number可选要提取的最后一项的索引。
返回:类型 说明 Collection 返回包含指定范围内项目的新集合。 - 另请参阅:
示例:// get the graphics from index 50 to 100; let selection = graphicsLayer.graphics.slice(50, 100);
-
确定集合中的项目是否通过
callback
定义的测试。集合中的每一项都被传递到回调中,直到返回true
值。参数:callback ItemCallback为每个集合项定义测试的函数。
返回:类型 说明 布尔值 如果集合中的任何项目通过 callback
中定义的测试,则返回true
。如果所有项目都未通过测试,则返回false
。- 另请参阅:
示例:// If at least one of the point graphics has a geometry whose // elevation is above 1000m, then passes will have a value of true. // Otherwise, it will be false. let passes = graphicsLayer.graphics.some(function(item, i){ return item.geometry.z > 1000; });
-
sort(compareFunction)inherited
-
对集合进行就地排序。
参数:compareFunction ItemCompareCallback可选定义集合中两个项目的比较的函数。
- 另请参阅:
示例:// Sort graphics based on their elevation or z-value let sortedGraphics = graphicsLayer.graphics.sort(function(a, b){ if(a.geometry.z > b.geometry.z){ return 1; } else if (a.geometry.z < b.geometry.z){ return -1; } else { return 0; } });
-
删除现有项目和/或将新项目添加到集合中。
参数:start Number开始更改集合的索引。
deleteCount Number指示要删除的集合项的数量。如果使用
0
,则不会删除任何元素,并且应在items
参数中添加至少一个新项目。items *要添加到集合中的项目或以逗号分隔的项目列表。
返回:类型 说明 Array 已删除项目的数组,以前是集合的一部分。 - 另请参阅:
示例:// map.layers is a collection of 6 layers // Adds a seventh layer to the map at index 3 map.layers.splice(3, 0, layer7);
// Removes two layers starting from index 2 and adds the // specified layers in the positions of the former layers let oldLayers = map.layers.splice(2, 2, layer8, layer9, layer10); // oldLayers = [layer2, layer3]
-
返回一个新的数组对象,其中包含集合的项。
返回:类型 说明 Array 包含集合项的数组。 示例:// Creates an array populated with the map's layers let mapLayersArray = map.layers.toArray();
-
toJSON(){Object}
-
将此类的实例转换为其 GeoScene portal JSON 表示形式。有关更多信息,请参阅 使用 fromJSON()主题。
返回:类型 说明 Object 此类示例的 GeoScene portal JSON 表现形式。
-
将一个或多个项添加到集合的开头。
参数:items *要添加到集合开头的项目。
返回:类型 说明 整数 集合的新长度。 示例:// If a map's basemap has 3 baseLayers: baseLyr0, baseLyr1, baseLyr2 map.basemap.baseLayers.unshift(baseLyr3); // Now the baseLayers collection is: baseLyr3, baseLyr0, baseLyr1, baseLyr2
事件概述
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
{item: *} |
更多信息 在将项添加到集合后激发。 |
更多信息 | Collection | |
更多信息 在添加、重新排序或从集合中删除项目后触发。 |
更多信息 | Collection | ||
{item: *} |
更多信息 从集合中删除项目后激发。 |
更多信息 | Collection | |
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
更多信息 在将项添加到集合之前激发。 |
更多信息 | Collection | |
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
更多信息 在对集合执行任何修改之前触发。 |
更多信息 | Collection | |
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
更多信息 在从集合中删除项目之前触发。 |
更多信息 | Collection | |
{added: Array,moved: Array,removed: Array} |
更多信息 | 更多信息 | Collection |
事件详述
-
after-addinherited
-
在将项添加到集合后激发。
- 属性:
-
item *
添加到集合中的项目。
示例:// indicates a layer has been added to the map map.layers.on("after-add", function(event){ console.log(event.item, " has been added to the map."); });
-
after-changesinherited
-
在添加、重新排序或从集合中删除项目后触发。
示例:map.layers.on("after-changes", function(event){ console.log(event, " layer was added/removed from the map."); });
-
after-removeinherited
-
从集合中删除项目后激发。
- 属性:
-
item *
要从集合中移除的项目。
示例:// indicates a layer has been removed from the map map.layers.on("after-remove", function(event){ console.log(event.item, " has been removed from the map."); });
-
before-addinherited
-
在将项添加到集合之前激发。此事件可用于通过使用
event.preventDefault()
方法取消项目来防止将项目添加到集合中。- 属性:
-
cancellable Boolean
指示是否可以取消更改事件。
defaultPrevented Boolean指示此事件之前是否已被另一个事件处理程序取消。
item *要添加到集合中的项目。
preventDefault Function一种防止将项目添加到集合中的方法。
示例:// prevents a layer from being added to the map more than once. map.layers.on("before-add", function(event){ if(map.layers.includes(event.item)){ event.preventDefault(); console.log("layer already exists in map."); } });
-
before-changesinherited
-
在对集合执行任何修改之前触发。此事件可用于通过使用
event.preventDefault()
方法取消项目来防止从集合中添加或删除项目。- 属性:
-
cancellable Boolean
指示是否可以取消更改事件。
defaultPrevented Boolean指示此事件之前是否已被另一个事件处理程序取消。
item *要从集合中添加或删除的项目。
preventDefault Function一种防止从集合中添加或删除项目的方法。
示例:map.layers.on("before-changes", function(event){ // prevents layers from being added/removed from the map event.preventDefault(); });
-
before-removeinherited
-
在从集合中删除项目之前触发。此事件可用于通过使用
event.preventDefault()
方法取消项目来防止从集合中删除项目。- 属性:
-
cancellable Boolean
指示是否可以取消更改事件。
defaultPrevented Boolean指示此事件之前是否已被另一个事件处理程序取消。
item *要从集合中移除的项目。
preventDefault Function一种防止从集合中删除项目的方法。
示例:// prevents a layer from being removed from the basemap map.basemap.baseLayers.on("before-remove", function(event){ if(map.basemap.baseLayers.includes(event.item)){ event.preventDefault(); console.log("layer cannot be removed from basemap."); } });
-
changeinherited
-
在集合中添加、重新排序或从集合中删除项目后触发。使用影响集合类型属性的其他类的方法也会导致此事件触发,例如 Map.add(), Map.remove(), Map.reorder()。
例如,使用 Map.add() 向
map.layers
集合添加新图层的map.layers.add(newLyr)
和map.add(newLyr)
将触发此事件。更改事件可用于通知开发人员/用户对集合的更改。
- 属性:
-
added Arraymoved Array
使用 reorder() 在集合中移动的项目数组。
removed Array使用 remove(), removeMany(), removeAt(), removeAll() 从集合中删除的项目数组。
示例:// This function will fire each time a layer is either added, // moved, or removed from the map.layers Collection map.layers.on("change", function(event){ let newLayers = event.added; // An array of layers added to the map.layers Collection let reorderedLayers = event.moved; // An array of layers moved in the Collection let removedLayers = event.removed; // An array of layers removed from map });