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.IReadOnlyList<dymaptic.GeoBlazor.Core.Components.Layers.Sublayer>? AllSublayers { get; }
Property Value
System.Collections.Generic.IReadOnlyList<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
MapImageLayer.Capabilities Property
Indicates the layer’s supported capabilities.
public dymaptic.GeoBlazor.Core.Components.Layers.MapImageLayerCapabilities? Capabilities { get; set; }
Property Value
MapImageLayer.Copyright Property
The copyright text as defined by the service.
public string? Copyright { get; set; }
Property Value
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
MapImageLayer.Url Property
The URL to the REST endpoint of the map service.
public string? Url { get; set; }
Property Value
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
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
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
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.