layout: default title: MapImageLayer parent: Core Classes —

dymaptic.GeoBlazor.Core

dymaptic.GeoBlazor.Core.Components.Layers

MapImageLayer Class

MapImageLayer allows you to display and analyze data from sublayers defined in a map service, exporting images instead of features. Map service images are dynamically generated on the server based on a request, which includes an LOD (level of detail), a bounding box, dpi, spatial reference and other options. In 2D, the exported image is of the entire map extent specified. In 3D, two images are exported: an image with higher resolution for the area closer to the camera and a lower resolution image for the area farther away from the camera.
Unlike FeatureLayer, MapImageLayer processing is handled by the server, not the client. Offloading the processing to the server allows MapImageLayer to render more features with a higher level of performance in some cases.
MapImageLayer does not display tiled images. To display tiled map service layers, see TileLayer.
ArcGIS Maps SDK for JavaScript

public class MapImageLayer : dymaptic.GeoBlazor.Core.Components.Layers.Layer

Inheritance System.Object 🡒 Microsoft.AspNetCore.Components.ComponentBase 🡒 MapComponent 🡒 Layer 🡒 MapImageLayer

Constructors

MapImageLayer() Constructor

Parameterless constructor for use as a Razor component.

public MapImageLayer();

MapImageLayer(string, PortalItem, Nullable, Dictionary<string,object>, Nullable, Effect, string, Nullable, Nullable, Nullable, Nullable, Nullable, Nullable, Nullable, Nullable, Nullable, TimeExtent, TimeInfo, TimeInterval, Nullable, IReadOnlyList, Nullable, Nullable, Nullable) Constructor

Creates a new MapImageLayer in code with parameters.

public MapImageLayer(string? url=null, dymaptic.GeoBlazor.Core.Components.PortalItem? portalItem=null, System.Nullable<dymaptic.GeoBlazor.Core.Components.Layers.BlendMode> blendMode=null, System.Collections.Generic.Dictionary<string,object>? customParameters=null, System.Nullable<int> dpi=null, dymaptic.GeoBlazor.Core.Components.Layers.Effect? effect=null, string? gdbVersion=null, System.Nullable<dymaptic.GeoBlazor.Core.Components.Layers.MapImageFormat> imageFormat=null, System.Nullable<int> imageMaxHeight=null, System.Nullable<int> imageMaxWidth=null, System.Nullable<bool> imageTransparency=null, System.Nullable<bool> legendEnabled=null, System.Nullable<int> maxScale=null, System.Nullable<int> minScale=null, System.Nullable<bool> persistenceEnabled=null, System.Nullable<double> refreshInterval=null, dymaptic.GeoBlazor.Core.Objects.TimeExtent? timeExtent=null, dymaptic.GeoBlazor.Core.Components.Layers.TimeInfo? timeInfo=null, dymaptic.GeoBlazor.Core.Objects.TimeInterval? timeInterval=null, System.Nullable<bool> useViewTime=null, System.Collections.Generic.IReadOnlyList<dymaptic.GeoBlazor.Core.Components.Layers.Sublayer>? sublayers=null, System.Nullable<dymaptic.GeoBlazor.Core.Components.Layers.ListMode> listMode=null, System.Nullable<bool> visible=null, System.Nullable<double> opacity=null);

Parameters

url System.String

The URL to the REST endpoint of the map service.

portalItem PortalItem

The portal item from which the layer is loaded. This will load the layer along with any overridden properties (e.g. renderers, definition expressions, etc.) saved to the portal item, not the map service.

blendMode System.Nullable<BlendMode>

Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer. Unlike the method of using transparency which can result in a washed-out top layer, blend modes can create a variety of very vibrant and intriguing results by blending a layer with the layer(s) below it.

customParameters System.Collections.Generic.Dictionary<System.String,System.Object>

A list of custom parameters appended to the URL of all resources fetched by the layer. It’s an object with key-value pairs where value is a string. The layer’s refresh() method needs to be called if the customParameters are updated at runtime.

dpi System.Nullable<System.Int32>

The output dots per inch (DPI) of the MapImageLayer.

effect Effect

Effect provides various filter functions that can be performed on the layer to achieve different visual effects similar to how image filters work. This powerful capability allows you to apply css filter-like functions to layers to create custom visual effects to enhance the cartographic quality of your maps. This is done by applying the desired effect to the layer’s effect property as a string or an array of objects to set scale dependent effects.

gdbVersion System.String

The version of the geodatabase of the map service data. Read the Overview of versioning topic for more details about this capability.

imageFormat System.Nullable<MapImageFormat>

The output image type.

imageMaxHeight System.Nullable<System.Int32>

Indicates the maximum height of the image exported by the service.

imageMaxWidth System.Nullable<System.Int32>

Indicates the maximum width of the image exported by the service.

imageTransparency System.Nullable<System.Boolean>

Indicates whether the background of the image exported by the service is transparent.

legendEnabled System.Nullable<System.Boolean>

Indicates whether the layer will be included in the legend.

maxScale System.Nullable<System.Int32>

The maximum scale (most zoomed in) at which the layer is visible in the view. If the map is zoomed in beyond this scale, the layer will not be visible. A value of 0 means the layer does not have a maximum scale. The maxScale value should always be smaller than the minScale value, and greater than or equal to the service specification.

minScale System.Nullable<System.Int32>

The minimum scale (most zoomed out) at which the layer is visible in the view. If the map is zoomed out beyond this scale, the layer will not be visible. A value of 0 means the layer does not have a minimum scale. The minScale value should always be larger than the maxScale value, and less than or equal to the service specification.

persistenceEnabled System.Nullable<System.Boolean>

Enable persistence of the layer in a WebMap or WebScene.

refreshInterval System.Nullable<System.Double>

Refresh interval of the layer in minutes. Value of 0 indicates no refresh.

timeExtent TimeExtent

The layer’s time extent. When the layer’s useViewTime is false, the layer instructs the view to show data from the layer based on this time extent. If the useViewTime is true, and both layer and view time extents are set, then features that fall within the intersection of the view and layer time extents will be displayed. For example, if the layer’s time extent is set to display features between 1970 and 1975 and the view has a time extent set to 1972-1980, the effective time on the feature layer will be 1972-1975.

timeInfo TimeInfo

TimeInfo provides information such as date fields that store start and end time for each feature and the fullTimeExtent for the layer. The timeInfo property, along with its startField and endField properties, must be set at the time of layer initialization if it is being set for a CSVLayer, GeoJSONLayer or FeatureLayer initialized from client-side features. The fullTimeExtent for timeInfo is automatically calculated based on its startField and endField properties. The timeInfo parameters cannot be changed after the layer is loaded.

timeInterval TimeInterval

A temporary offset of the time data based on a certain TimeInterval. This allows users to overlay features from two or more time-aware layers with different time extents. For example, if a layer has data recorded for the year 1970, an offset value of 2 years would temporarily shift the data to 1972. You can then overlay this data with data recorded in 1972. A time offset can be used for display purposes only. The query and selection are not affected by the offset.

useViewTime System.Nullable<System.Boolean>

Determines if the layer will update its temporal data based on the view’s timeExtent. When false, the layer will display its temporal data based on the layer’s timeExtent, regardless of changes to the view. If both view and layer time extents are set while this property is true, then the features that fall within the intersection of the view and layer time extents will be displayed. For example, if a layer’s time extent is set to display features between 1970 and 1975 and the view has a time extent set to 1972-1980, the effective time on the feature layer will be 1972-1975.

sublayers System.Collections.Generic.IReadOnlyList<Sublayer>

A Collection of Sublayer objects that allow you to alter the properties of one or more sublayers of the MapImageLayer. If this property is not specified, all the sublayers from the service are displayed as defined in the service. If an empty array is passed to this property then none of the sublayers from the service are displayed in the layer.

listMode System.Nullable<ListMode>

The list mode of the layer.

visible System.Nullable<System.Boolean>

Indicates whether the layer is visible in the view.

opacity System.Nullable<System.Double>

The opacity of the layer.

Properties

MapImageLayer.AllSublayers Property

A flat Collection of all the sublayers in the MapImageLayer including the sublayers of its sublayers. All sublayers are referenced in the order in which they are drawn in the view (bottom to top).

public System.Collections.Generic.IReadOnlyCollection<dymaptic.GeoBlazor.Core.Components.Layers.Sublayer>? AllSublayers { get; set; }

Property Value

System.Collections.Generic.IReadOnlyCollection<Sublayer>

MapImageLayer.BlendMode Property

Blend modes are used to blend layers together to create an interesting effect in a layer, or even to produce what seems like a new layer. Unlike the method of using transparency which can result in a washed-out top layer, blend modes can create a variety of very vibrant and intriguing results by blending a layer with the layer(s) below it.

public System.Nullable<dymaptic.GeoBlazor.Core.Components.Layers.BlendMode> BlendMode { get; set; }

Property Value

System.Nullable<BlendMode>

MapImageLayer.Capabilities Property

Indicates the layer’s supported capabilities.

public dymaptic.GeoBlazor.Core.Components.Layers.MapImageLayerCapabilities? Capabilities { get; set; }

Property Value

MapImageLayerCapabilities

MapImageLayer.Copyright Property

The copyright text as defined by the service.

public string? Copyright { get; set; }

Property Value

System.String

MapImageLayer.CustomParameters Property

A list of custom parameters appended to the URL of all resources fetched by the layer. It’s an object with key-value pairs where value is a string. The layer’s refresh() method needs to be called if the customParameters are updated at runtime.

public System.Collections.Generic.Dictionary<string,object>? CustomParameters { get; set; }

Property Value

System.Collections.Generic.Dictionary<System.String,System.Object>

MapImageLayer.DateFieldsTimeZone Property

The time zone that dates are stored in. This property does not apply to date fields referenced by timeInfo.
Even though dates are transmitted as UTC epoch values, this property may be useful when constructing date or time where clauses for querying. If constructing date or time where clauses, use FieldIndex.getTimeZone() to get the time zone for the given date field.

public string? DateFieldsTimeZone { get; set; }

Property Value

System.String

MapImageLayer.DatesInUnknownTimezone Property

This property is set by the service publisher and indicates that dates should be considered without the local timezone. This applies to both requests and responses.

public System.Nullable<bool> DatesInUnknownTimezone { get; set; }

Property Value

System.Nullable<System.Boolean>

Remarks

Known Limitations

  • This capability is only available with services published with ArcGIS Enterprise 10.9 or greater.
  • When setting timeExtent in a query, filter or layer, dates must be defined in terms of UTC as illustrated in the code below.
  • When using Layer.TimeInfo.FullTimeExtent in conjunction with TimeSlider, the local timezone offset must be removed.

MapImageLayer.DPI Property

The output dots per inch (DPI) of the MapImageLayer.
Default Value:96

public System.Nullable<int> DPI { get; set; }

Property Value

System.Nullable<System.Int32>

MapImageLayer.Effect Property

Effect provides various filter functions that can be performed on the layer to achieve different visual effects similar to how image filters work. This powerful capability allows you to apply css filter-like functions to layers to create custom visual effects to enhance the cartographic quality of your maps. This is done by applying the desired effect to the layer’s effect property as a string or an array of objects to set scale dependent effects.

public dymaptic.GeoBlazor.Core.Components.Layers.Effect? Effect { get; set; }

Property Value

Effect

MapImageLayer.GdbVersion Property

The version of the geodatabase of the map service data. Read the Overview of versioning topic for more details about this capability.

public string? GdbVersion { get; set; }

Property Value

System.String

MapImageLayer.ImageFormat Property

The output image type.
Default Value:Png24

public System.Nullable<dymaptic.GeoBlazor.Core.Components.Layers.MapImageFormat> ImageFormat { get; set; }

Property Value

System.Nullable<MapImageFormat>

MapImageLayer.ImageMaxHeight Property

Indicates the maximum height of the image exported by the service.
Default Value: 2048

public System.Nullable<int> ImageMaxHeight { get; set; }

Property Value

System.Nullable<System.Int32>

MapImageLayer.ImageMaxWidth Property

Indicates the maximum width of the image exported by the service.
Default Value: 2048

public System.Nullable<int> ImageMaxWidth { get; set; }

Property Value

System.Nullable<System.Int32>

MapImageLayer.ImageTransparency Property

Indicates whether the background of the image exported by the service is transparent.
Default Value: true

public System.Nullable<bool> ImageTransparency { get; set; }

Property Value

System.Nullable<System.Boolean>

MapImageLayer.LayerType Property

Used internally to identify the sub type of Layer

public override string LayerType { get; }

Property Value

System.String

MapImageLayer.LegendEnabled Property

Indicates whether the layer will be included in the legend.
Default Value: true

public System.Nullable<bool> LegendEnabled { get; set; }

Property Value

System.Nullable<System.Boolean>

MapImageLayer.MaxScale Property

The maximum scale (most zoomed in) at which the layer is visible in the view. If the map is zoomed in beyond this scale, the layer will not be visible. A value of 0 means the layer does not have a maximum scale. The maxScale value should always be smaller than the minScale value, and greater than or equal to the service specification.
Default Value: 0

public System.Nullable<int> MaxScale { get; set; }

Property Value

System.Nullable<System.Int32>

MapImageLayer.MinScale Property

The minimum scale (most zoomed out) at which the layer is visible in the view. If the map is zoomed out beyond this scale, the layer will not be visible. A value of 0 means the layer does not have a minimum scale. The minScale value should always be larger than the maxScale value, and less than or equal to the service specification.
Default Value: 0

public System.Nullable<int> MinScale { get; set; }

Property Value

System.Nullable<System.Int32>

MapImageLayer.PersistenceEnabled Property

Enable persistence of the layer in a WebMap or WebScene.
Default Value: true

public System.Nullable<bool> PersistenceEnabled { get; set; }

Property Value

System.Nullable<System.Boolean>

MapImageLayer.PortalItem Property

The portal item from which the layer is loaded. This will load the layer along with any overridden properties (e.g. renderers, definition expressions, etc.) saved to the portal item, not the map service.

public dymaptic.GeoBlazor.Core.Components.PortalItem? PortalItem { get; set; }

Property Value

PortalItem

MapImageLayer.PreferredTimeZone Property

The IANA time zone the author of the service intended data from date fields to be viewed in.
Default Value: null

public string? PreferredTimeZone { get; set; }

Property Value

System.String

MapImageLayer.RefreshInterval Property

Refresh interval of the layer in minutes. Value of 0 indicates no refresh.
Default Value: 0

public System.Nullable<double> RefreshInterval { get; set; }

Property Value

System.Nullable<System.Double>

MapImageLayer.SourceJSON Property

The map service’s metadata JSON exposed by the ArcGIS REST API. While most commonly used properties are exposed on the MapImageLayer class directly, this property gives access to all information returned by the map service. This property is useful if working in an application built using an older version of the API which requires access to map service properties from a more recent version.

public string? SourceJSON { get; set; }

Property Value

System.String

MapImageLayer.SpatialReference Property

The spatial reference of the layer as defined by the service.

public dymaptic.GeoBlazor.Core.Components.Geometries.SpatialReference? SpatialReference { get; set; }

Property Value

SpatialReference

MapImageLayer.Sublayers Property

A Collection of Sublayer objects that allow you to alter the properties of one or more sublayers of the MapImageLayer. If this property is not specified, all the sublayers from the service are displayed as defined in the service. If an empty array is passed to this property then none of the sublayers from the service are displayed in the layer.
All sublayers are referenced in the order in which they are drawn in the view (bottom to top).

public System.Collections.Generic.IReadOnlyList<dymaptic.GeoBlazor.Core.Components.Layers.Sublayer> Sublayers { get; set; }

Property Value

System.Collections.Generic.IReadOnlyList<Sublayer>

MapImageLayer.TimeExtent Property

The layer’s time extent. When the layer’s useViewTime is false, the layer instructs the view to show data from the layer based on this time extent. If the useViewTime is true, and both layer and view time extents are set, then features that fall within the intersection of the view and layer time extents will be displayed. For example, if the layer’s time extent is set to display features between 1970 and 1975 and the view has a time extent set to 1972-1980, the effective time on the feature layer will be 1972-1975.
Default Value: null

public dymaptic.GeoBlazor.Core.Objects.TimeExtent? TimeExtent { get; set; }

Property Value

TimeExtent

MapImageLayer.TimeInfo Property

TimeInfo provides information such as date fields that store start and end time for each feature and the fullTimeExtent for the layer. The timeInfo property, along with its startField and endField properties, must be set at the time of layer initialization if it is being set for a CSVLayer, GeoJSONLayer or FeatureLayer initialized from client-side features. The fullTimeExtent for timeInfo is automatically calculated based on its startField and endField properties. The timeInfo parameters cannot be changed after the layer is loaded.
TimeInfo’s startField and endField can be date, date-only or timestamp-offset field type for FeatureLayer and MapImageLayer.
Default Value: null

public dymaptic.GeoBlazor.Core.Components.Layers.TimeInfo? TimeInfo { get; set; }

Property Value

TimeInfo

MapImageLayer.TimeInterval Property

A temporary offset of the time data based on a certain TimeInterval. This allows users to overlay features from two or more time-aware layers with different time extents. For example, if a layer has data recorded for the year 1970, an offset value of 2 years would temporarily shift the data to 1972. You can then overlay this data with data recorded in 1972. A time offset can be used for display purposes only. The query and selection are not affected by the offset.
Default Value: null

public dymaptic.GeoBlazor.Core.Objects.TimeInterval? TimeInterval { get; set; }

Property Value

TimeInterval

MapImageLayer.Url Property

The URL to the REST endpoint of the map service.

public string? Url { get; set; }

Property Value

System.String

MapImageLayer.UseViewTime Property

Determines if the layer will update its temporal data based on the view’s timeExtent. When false, the layer will display its temporal data based on the layer’s timeExtent, regardless of changes to the view. If both view and layer time extents are set while this property is true, then the features that fall within the intersection of the view and layer time extents will be displayed. For example, if a layer’s time extent is set to display features between 1970 and 1975 and the view has a time extent set to 1972-1980, the effective time on the feature layer will be 1972-1975.
Default Value: true

public System.Nullable<bool> UseViewTime { get; set; }

Property Value

System.Nullable<System.Boolean>

MapImageLayer.Version Property

The version of ArcGIS Server in which the map service is published.

public string? Version { get; set; }

Property Value

System.String

Methods

MapImageLayer.RegisterChildComponent(MapComponent) Method

Called from dymaptic.GeoBlazor.Core.Components.MapComponent.OnInitializedAsync to “Register” the current component with it’s parent.

public override System.Threading.Tasks.Task RegisterChildComponent(dymaptic.GeoBlazor.Core.Components.MapComponent child);

Parameters

child MapComponent

The calling, child component to register

Returns

System.Threading.Tasks.Task

Exceptions

InvalidChildElementException
Throws if the current child is not a valid sub-component to the parent.

Remarks

This method is an implementation detail and should not be called directly by consumers. In future versions, this may be changed to an internal method. If you see no other way to register a child component, please open an issue on GitHub.

MapImageLayer.UnregisterChildComponent(MapComponent) Method

Undoes the “Registration” of a child with its parent.

public override System.Threading.Tasks.Task UnregisterChildComponent(dymaptic.GeoBlazor.Core.Components.MapComponent child);

Parameters

child MapComponent

The child to unregister

Returns

System.Threading.Tasks.Task

Remarks

This method is an implementation detail and should not be called directly by consumers. In future versions, this may be changed to an internal method.