require(["esri/layers/support/SceneModifications"], (SceneModifications) => { /* code goes here */ });
import SceneModifications from "@arcgis/core/layers/support/SceneModifications.js";
esri/layers/support/SceneModifications
A collection of SceneModification with polygons and types to apply client-side modifications. The SceneModifications could be applied to the IntegratedMeshLayer.modifications property.
The modifications for IntegratedMeshLayer need to be in the same spatial reference as the IntegratedMeshLayer. Reprojection between WGS84 and WebMercator will be done automatically. Reprojection of the geometry to other spatial references can be done with the client-side projection engine.
Constructors
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
The name of the class. | Accessor | ||
The number of items in the Collection. | Collection |
Property Details
-
length
InheritedPropertylength Number
Inherited from Collection -
The number of items in the Collection.
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds a single item to the collection. | Collection | ||
Adds one or more handles which are to be tied to the lifecycle of the object. | Accessor | ||
Adds multiple items to the collection. | Collection | ||
* | Returns the item at the specified index, allowing for positive and negative integers. | Collection | |
Creates a clone of this object. | SceneModifications | ||
Creates a new Collection containing the items in the original Collection joined with the items in the input array or Collection. | Collection | ||
Removes and destroys instances of all the items of the Collection. | Collection | ||
* | Removes each item in the input array and destroys it. | Collection | |
Emits an event on the instance. | Collection | ||
Determines whether all items in the Collection pass a test defined by | Collection | ||
Filters the Collection's items based on a test defined by the | Collection | ||
* | Returns an item in the Collection if that item passes a test as defined in the | Collection | |
Returns the index of an item in the Collection if that item passes a test as defined in the | Collection | ||
Flattens a hierarchical Collection containing at least one child collection. | Collection | ||
Executes the input function for each item in the Collection. | Collection | ||
* | Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. | SceneModifications | |
* | Returns the item at the specified index. | Collection | |
Indicates whether there is an event listener on the instance that matches the provided event name. | Collection | ||
Returns true if a named group of handles exist. | Accessor | ||
Tests if an item is present in the new Collection. | Collection | ||
Returns the index of an element in the collection. | Collection | ||
Creates a string representation of the items in the Collection. | Collection | ||
Returns the last index of an element in the collection. | Collection | ||
Passes each Collection item into the | Collection | ||
Registers an event handler on the instance. | Collection | ||
* | Removes the last item from the collection and returns it. | Collection | |
Adds an item(s) to the end of the collection. | Collection | ||
* | Reduces all items in the collection (from left to right) into a single variable using | Collection | |
* | Reduces all items in the collection (from right to left) into a single variable using | Collection | |
Removes an item from the collection. | Collection | ||
Removes all items from the collection. | Collection | ||
* | Removes an item from the collection at a specified index. | Collection | |
Removes a group of handles owned by the object. | Accessor | ||
* | Removes each item in the input array. | Collection | |
* | Moves an item in the Collection to a specified index. | Collection | |
Reverses the collection in place. | Collection | ||
* | Removes the first item from the collection (at index 0), and returns it. | Collection | |
Creates a new Collection comprised of a portion of the original Collection. | Collection | ||
Determines whether an item in the Collection passes a test defined by | Collection | ||
Sorts the Collection in place. | Collection | ||
Removes existing items and/or adds new items to the collection. | Collection | ||
Returns a new array object containing the Collection's items. | Collection | ||
Converts an instance of this class to its ArcGIS portal JSON representation. | SceneModifications | ||
Adds one or more items to the beginning of the collection. | Collection |
Method Details
-
Inherited from Collection
-
Adds a single item to the collection. The change event is fired after an item is added to the Collection.
Parametersitem *The item to add.
index NumberoptionalZero-based index of where in the collection to add the item. If not specified, the items will be added at the end.
Examplelet 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
-
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, addHandles added at 4.25. -
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
Inherited from Collection
-
Adds multiple items to the collection. The change event is fired after items are added to the Collection.
Parametersitems Array|CollectionAn array or collection of items to add.
index NumberoptionalZero-based index of where in the collection to add the items. If not specified, the items will be added at the end.
Example// 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]);
-
Inherited from Collection
Since: ArcGIS Maps SDK for JavaScript 4.23Collection since 4.0, at added at 4.23. -
Returns the item at the specified index, allowing for positive and negative integers. Negative integers count back from the last item in the array.
Parameterindex NumberIndex of the item in the Collection to retrieve. It can be a relative index from the end of the Collection.
ReturnsType Description * The item in the Collection stored at the specified index. - See also
Example// 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
clone(){SceneModifications}
-
Creates a clone of this object.
ReturnsType Description SceneModifications A clone of the SceneModifications instance that invoked this method.
-
concat
InheritedMethodconcat(value){Collection}
Inherited from Collection -
Creates a new Collection containing the items in the original Collection joined with the items in the input array or Collection.
Parametervalue Array|CollectionThe array or Collection to append to the existing Collection.
ReturnsType Description Collection A new Collection comprised of the items in the Collection that invoked this method combined with the input items. - See also
Example// creating a collection of all the basemap's layers. let basemap = map.basemap; let basemapLayers = basemap.baseLayers.concat(basemap.referenceLayers);
-
Inherited from Collection
Since: ArcGIS Maps SDK for JavaScript 4.30Collection since 4.0, destroyAll added at 4.30. -
Removes and destroys instances of all the items of the Collection.
-
Inherited from Collection
Since: ArcGIS Maps SDK for JavaScript 4.30Collection since 4.0, destroyMany added at 4.30. -
Removes each item in the input array and destroys it. If an item is present multiple times in the collection, only the first occurrence is removed and destroyed. The change event is fired after an item is removed from the Collection.
Parameteritems Array|CollectionThe items to remove and destroy.
ReturnsType Description * The removed and destroyed items present in the collection.
-
emit
InheritedMethodemit(type, event){Boolean}
Inherited from Collection -
Emits an event on the instance. This method should only be used when creating subclasses of this class.
ReturnsType Description Boolean true
if a listener was notified
-
every
InheritedMethodevery(callback){Boolean}
Inherited from Collection -
Determines whether all items in the Collection pass a test defined by
callback
. Each item in the Collection is passed into the callback until one returns a value offalse
.Parametercallback ItemTestCallbackThe function to call for each item in the Collection.
ReturnsType Description Boolean Returns true
if every call to thecallback
function returnedtrue
. Returnsfalse
if at least one call to thecallback
returnedfalse
.- See also
Examplelet 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; });
-
filter
InheritedMethodfilter(callback){Collection}
Inherited from Collection -
Filters the Collection's items based on a test defined by the
callback
function. Each item is passed into thecallback
function, which returnstrue
if the item passes the test andfalse
if it does not.Parametercallback ItemTestCallbackThe function that defines a test for determining whether to return the item in a new Collection.
ReturnsType Description Collection Returns a new Collection containing the items that passed the filter test. - See also
Example// filteredLayers is a Collection of all the non-visible layers in the map let filteredLayers = map.layers.filter(function(layer){ return !layer.visible; });
-
Inherited from Collection
-
Returns an item in the Collection if that item passes a test as defined in the
callback
function. Each item is passed into thecallback
function, which returnstrue
if the item passes the test andfalse
if it does not.Parametercallback ItemTestCallbackThe testing function that will assess each item in the Collection. Returns
true
if an item passes the test andfalse
if it fails.ReturnsType Description * The first item in the Collection that satisfies the test function. - See also
Example// 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"
-
findIndex
InheritedMethodfindIndex(callback){Number}
Inherited from Collection -
Returns the index of an item in the Collection if that item passes a test as defined in the
callback
function. Each item is passed into thecallback
function, which returnstrue
if the item passes the test andfalse
if it does not.Parametercallback ItemTestCallbackThe testing function that will assess each item in the Collection. Returns
true
if an item passes the test andfalse
if it fails.ReturnsType Description Number Returns the index of the Collection item that satisfies the test function. If an item fails the test, -1
is returned.- See also
Example// 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"; });
-
flatten
InheritedMethodflatten(callback){Collection}
Inherited from Collection -
Flattens a hierarchical Collection containing at least one child collection. Each item in the collection is passed into the
callback
function, which should check for child collections specified by the developer. A flat collection of all items (parent and children) is returned.This is useful for scenarios where the user would like to search all the layers in a map, including a GroupLayer's layers and a MapImageLayer's sublayers. The callback should return the sub-collection of the item. If multiple levels of collections exist in the hierarchy, then this method recursively executes for all sub-collections.
Parametercallback ItemCallbackA function that will assess each item in the Collection.
ReturnsType Description Collection Returns a flat collection of all items in the original collection and their children. Example// 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; });
-
Inherited from Collection
-
Executes the input function for each item in the Collection.
Parametercallback ItemCallbackThe function to call for each item in the Collection.
- See also
ExamplegraphicsLayer.graphics.forEach(function(item, i){ // Do something here to each graphic like calculate area of its geometry calculateArea(item.geometry); });
-
Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input
json
parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.Parameterjson ObjectA JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
ReturnsType Description * Returns a new instance of this class.
-
Inherited from Collection
-
Returns the item at the specified index.
Parameterindex NumberZero-based index of the item in the Collection to retrieve.
ReturnsType Description * The item in the Collection stored at the specified index. Example// Assigns the base layer at index 0 to baseLayer let baseLayer = map.basemap.baseLayers.getItemAt(0);
-
hasEventListener
InheritedMethodhasEventListener(type){Boolean}
Inherited from Collection -
Indicates whether there is an event listener on the instance that matches the provided event name.
Parametertype StringThe name of the event.
ReturnsType Description Boolean Returns true if the class supports the input event.
-
hasHandles
InheritedMethodhasHandles(groupKey){Boolean}
Inherited from AccessorSince: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, hasHandles added at 4.25. -
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
includes
InheritedMethodincludes(searchElement){Boolean}
Inherited from Collection -
Tests if an item is present in the new Collection.
ParametersearchElement *The item to search for in the collection.
ReturnsType Description Boolean true
if the item is in the collection.- See also
Example// check if a layer is in the map's operational layers. if (view.map.layers.includes(myLayer)) { // ... }
-
indexOf
InheritedMethodindexOf(searchElement, fromIndex){Number}
Inherited from Collection -
Returns the index of an element in the collection.
ParameterssearchElement *Item to search for in the collection.
fromIndex NumberoptionalUse if you don't want to search the whole collection or you don't want to search from the start.
ReturnsType Description Number The location of the first match found in the collection, or -1 if there is no match. - See also
Example// index is the index of the first graphic in the // graphics layer that matches the input graphic let index = graphicsLayer.graphics.indexOf(graphic);
-
join
InheritedMethodjoin(separator){String}
Inherited from Collection -
Creates a string representation of the items in the Collection.
Parameterseparator StringoptionalDefault Value: ,The separator used between each item in the final string.
ReturnsType Description String The string representation of the items. - See also
Examplelet stringCollection = new Collection(["how", "are", "you", "doing?"]); let phrase = stringCollection.join(" "); // Prints "how are you doing?" console.log(phrase);
-
lastIndexOf
InheritedMethodlastIndexOf(searchElement, fromIndex){Number}
Inherited from Collection -
Returns the last index of an element in the collection.
ParameterssearchElement *Item to search for in the collection.
fromIndex NumberoptionalUse if you don't want to search the whole collection, or you don't want to search from the end.
ReturnsType Description Number The location of the last match found in the collection, or -1 if there is no match. - See also
Example// index is the index of the first graphic in the // graphics layer that matches the input graphic let index = graphicsLayer.graphics.lastIndexOf(graphic);
-
map
InheritedMethodmap(callback){Collection}
Inherited from Collection -
Passes each Collection item into the
callback
function and returns a new array of the returned values. For example, if you have a Collection of numbers and would like to add each number by 10, you can usemap()
to create a new Collection with the same numbers incremented by 10.Parametercallback ItemMapCallbackThe function that processes each item in the Collection and returns a new value at the same index of the original item.
ReturnsType Description Collection Returns a new collection containing the new items generated from the callback
.- See also
Example// Gets the geometries of the graphics and assigns them to a new Collection let geometries = graphicsLayer.graphics.map(function(item, i){ return item.geometry; });
-
on
InheritedMethodon(type, listener){Object}
Inherited from Collection -
Registers an event handler on the instance. Call this method to hook an event with a listener.
ParametersReturnsType Description Object Returns an event handler with a remove()
method that should be called to stop listening for the event(s).Property Type Description remove Function When called, removes the listener from the event. Exampleview.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
Inherited from Collection
-
Removes the last item from the collection and returns it.
ReturnsType Description * The last item in the collection. - See also
Example// Removes the last layer in the map and stores it in lastLayer let lastLayer = map.layers.pop();
-
push
InheritedMethodpush(item){Number}
Inherited from Collection -
Adds an item(s) to the end of the collection.
Parameteritem *An item or comma-separated list of items to add to the end of the collection.
ReturnsType Description Number The new length of the collection. - See also
Examples// 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);
-
Inherited from Collection
-
Reduces all items in the collection (from left to right) into a single variable using
callback
.Parametercallback ItemReduceCallbackThe function that processes each item in the Collection and appends it to the previous item.
ReturnsType Description * Returns the value representing the reduction of the Collection's items. - See also
-
Inherited from Collection
-
Reduces all items in the collection (from right to left) into a single variable using
callback
.Parameterscallback ItemReduceCallbackThe function that processes each item in the Collection and appends it to the previous item.
initialValue *optionalItem to use as the first element to process in
callback
.ReturnsType Description * Returns the value representing the reduction of the Collection's items. - See also
-
Inherited from Collection
-
Removes an item from the collection. The change event is fired after an item is removed from the Collection.
Parameteritem *The item to remove.
Examplelet layer = map.layers.at(4); // Removes the fifth layer from the map map.layers.remove(layer);
-
Inherited from Collection
-
Removes all items from the collection.
Example// Removes all layers from the map map.layers.removeAll();
-
Inherited from Collection
-
Removes an item from the collection at a specified index. The change event is fired after an item is removed from the Collection.
Parameterindex NumberThe index of the item to remove.
ReturnsType Description * The removed item if present in the collection, undefined
otherwise.Example// Removes the layer at index 4 of the map map.layers.removeAt(4);
-
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, removeHandles added at 4.25. -
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
Inherited from Collection
-
Removes each item in the input array. If an item is present multiple times in the collection, only the first occurrence is removed. The change event is fired after an item is removed from the Collection.
Parameteritems Array|CollectionThe items to remove.
ReturnsType Description * The removed items present in the collection. Examplelet refLayers = [refLyr1, refLyr2, refLyr3]; // Removes three reference layers in the refLayers // collection from the basemap's referenceLayers map.basemap.referenceLayers.removeMany(refLayers);
-
Inherited from Collection
-
Moves an item in the Collection to a specified index. The change event is fired after an item is moved in the Collection.
Parametersitem *The item to move.
index NumberThe index to move the item to.
ReturnsType Description * The item that was moved. undefined
ifitem
is not in the collectionExample// Get the first two layers in a map let layer1 = map.layers.at(0); let layer2 = map.layers.at(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);
-
reverse
InheritedMethodreverse(){Collection}
Inherited from Collection -
Reverses the collection in place.
ReturnsType Description Collection The reversed collection. - See also
Example// Reverse layers from the map map.layers.reverse();
-
Inherited from Collection
-
Removes the first item from the collection (at index 0), and returns it. The remaining items of the collection are then shifted down one index from their previous location.
ReturnsType Description * The first item in the collection. - See also
Example// Removes the first layer in the map and stores it in firstLyr let firstLyr = map.layers.shift();
-
slice
InheritedMethodslice(begin, end){Collection}
Inherited from Collection -
Creates a new Collection comprised of a portion of the original Collection.
ParametersReturnsType Description Collection Returns a new Collection containing the items in the specified range. - See also
Example// get the graphics from index 50 to 100; let selection = graphicsLayer.graphics.slice(50, 100);
-
some
InheritedMethodsome(callback){Boolean}
Inherited from Collection -
Determines whether an item in the Collection passes a test defined by
callback
. Each item in the Collection is passed into the callback until one returns a value oftrue
.Parametercallback ItemCallbackThe function that defines the test for each Collection item.
ReturnsType Description Boolean Returns true
if any of the items in the Collection pass the test defined incallback
. Returnsfalse
if all items fail the test.- See also
Example// 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; });
-
Inherited from Collection
-
Sorts the Collection in place.
ParametercompareFunction ItemCompareCallbackoptionalThe function that defines a comparison of two items in the collection.
- See also
Example// 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; } });
-
splice
InheritedMethodsplice(start, deleteCount, items){Array}
Inherited from Collection -
Removes existing items and/or adds new items to the collection.
Parametersstart NumberIndex at which to start changing the collection.
deleteCount NumberIndicates the number of collection items to remove. If
0
is used then no elements are removed and at least one new item should be added in theitems
parameter.items *The item or comma-separated list of items to add to the collection.
ReturnsType Description Array An array of the deleted items formerly part of the collection. - See also
Examples// 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]
-
toArray
InheritedMethodtoArray(){Array}
Inherited from Collection -
Returns a new array object containing the Collection's items.
ReturnsType Description Array An array containing the Collection's items. Example// Creates an array populated with the map's layers let mapLayersArray = map.layers.toArray();
-
toJSON
toJSON(){Object}
-
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
ReturnsType Description Object The ArcGIS portal JSON representation of an instance of this class.
-
unshift
InheritedMethodunshift(items){Number}
Inherited from Collection -
Adds one or more items to the beginning of the collection.
Parameteritems *The item(s) to add to the beginning of the collection.
ReturnsType Description Number The new length of the collection. - See also
Example// 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
Event Overview
Name | Type | Summary | Class |
---|---|---|---|
|
{item: *} |
Fires after an item has been added to the collection. |
Collection |
|
Fires after an item has been added, reordered or removed from the collection. |
Collection | |
|
{item: *} |
Fires after an item has been removed from the collection. |
Collection |
|
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
Fires before an item is added to the collection. |
Collection |
|
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
Fires before any modifications are performed on the collection. |
Collection |
|
{cancellable: Boolean,defaultPrevented: Boolean,item: *,preventDefault: Function} |
Fires before an item has been removed from the collection. |
Collection |
|
{added: Array,moved: Array,removed: Array} |
Fires after an item has been added, reordered, or removed from the Collection. |
Collection |
Event Details
-
Inherited from Collection
-
Fires after an item has been added to the collection.
- Property
-
item *
The item added to the collection.
Example// 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."); });
-
Inherited from Collection
-
Fires after an item has been added, reordered or removed from the collection.
Examplemap.layers.on("after-changes", function(event){ console.log(event, " layer was added/removed from the map."); });
-
Inherited from Collection
-
Fires after an item has been removed from the collection.
- Property
-
item *
The item to remove from the collection.
Example// 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."); });
-
Inherited from Collection
-
Fires before an item is added to the collection. This event can be used to prevent an item from being added to the collection by cancelling it with the
event.preventDefault()
method.- Properties
-
cancellable Boolean
Indicates if the change event can be cancelled.
defaultPrevented BooleanIndicates if this event has previously been cancelled by another event handler.
item *The item to add to the collection.
preventDefault FunctionA method that prevents the item from being added to the collection.
Example// 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."); } });
-
Inherited from Collection
-
Fires before any modifications are performed on the collection. This event can be used to prevent an item from being added or removed from the collection by cancelling it with the
event.preventDefault()
method.- Properties
-
cancellable Boolean
Indicates if the change event can be cancelled.
defaultPrevented BooleanIndicates if this event has previously been cancelled by another event handler.
item *The item to add or remove from the collection.
preventDefault FunctionA method that prevents the item from being added or removed from the collection.
Examplemap.layers.on("before-changes", function(event){ // prevents layers from being added/removed from the map event.preventDefault(); });
-
Inherited from Collection
-
Fires before an item has been removed from the collection. This event can be used to prevent an item from being removed from the collection by cancelling it with the
event.preventDefault()
method.- Properties
-
cancellable Boolean
Indicates if the change event can be cancelled.
defaultPrevented BooleanIndicates if this event has previously been cancelled by another event handler.
item *The item to remove from the collection.
preventDefault FunctionA method that prevents the item from being removed from the collection.
Example// 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."); } });
-
Inherited from Collection
-
Fires after an item has been added, reordered, or removed from the Collection. Using methods of other classes that affect properties of type Collection will also cause this event to fire, such as Map.add(), Map.remove(), Map.reorder().
For example,
map.layers.add(newLyr)
andmap.add(newLyr)
which uses Map.add() to add a new layer to themap.layers
collection will cause this event to fire.The change event can be used to notify the developer/user of changes to the collection. The arrays in the collection event objects are reused. Make a copy of the collection event object if these objects need to be processed in your application.
- Properties
-
added Array
An array of items added to the collection using either add() or addMany().
moved ArrayAn array of items that moved in the collection using reorder().
removed ArrayAn array of items removed from the collection using either remove(), removeMany(), removeAt(), or removeAll().
Example// This function will fire each time a layer is either added, // moved, or removed from the map.layers Collection // make a copy of the collection event object for processing map.layers.on("change", function(event){ const copiedEvent = JSON.parse(JSON.stringify(event)); let newLayers = copiedEvent.added; // An array of layers added to the map.layers Collection let reorderedLayers = copiedEvent.moved; // An array of layers moved in the Collection let removedLayers = copiedEvent.removed; // An array of layers removed from map });