Class
JimuMapView is the view for developers to develop the map-related functions.
For example, developers can use the view property of the JimuMapView instance to get the original ArcGIS Maps SDK for JavaScript View ,
then use the original view to develop the map-related functions. At the same time, JimuMapView also provides
properties such as isActive and status to indicate the current status in the map widget.
JimuMapView is a wrapper class for the ArcGIS Maps SDK for JavaScript View .
It is created by a map widget using a map DataSource .
import { JimuMapView } from 'jimu-arcgis';
// Add the State interface
interface State {
extent: __esri.Extent
}
// On an active view change, set the extent State property
onActiveViewChange = (jimuMapView: JimuMapView) => {
if(!this.extentWatch){
this.extentWatch = jimuMapView.view.watch('extent', extent => {
this.setState({
extent
})
});
}
}
// Use the `JimuMapView` instance from the map widget through the `JimuMapViewComponent` React component
<JimuMapViewComponent useMapWidgetId={this.props.useMapWidgetIds[0]} onActiveViewChange={this.onActiveViewChange}></JimuMapViewComponent>Properties
| Property | Type | Notes |
|---|---|---|
dataSourceId | string | The id of the |
id | string | The id of the |
isActive | boolean | The |
jimuLayerViews | JimuLayerViews | The union for all |
jimuMapTools | JimuMapTool[] | The created map tools (ArcGIS JavaScript API widgets) for this view. |
mapWidgetId | string | The id of the widget creating the |
status | JimuMapViewStatus | The status of the |
view | MapView | SceneView | The |
isActive
isActive: booleanThe isActive property indicates whether the map in the map widget is accessible.
For example, for a single-source map, there is a single JimuMapView instance, therefore, the isActive is always true.
With a multi-source map, there are two JimuMapView instances. In the multi-source map, the property isActive is true for the top JimuMapView instance,
and false for the one beneath. Upon clicking the switch map tool, the isActive properties will switch.
jimuLayerViews
jimuLayerViews: JimuLayerViewsThe union for all JimuLayerView instances and the layer view object wrapper.
the JimuLayerView instance in this object may not been loaded. Please call whenJimuLayerViewLoaded() to wait for it's loaded.
jimuMapTools
Class PropertyjimuMapTools: JimuMapTool[]The created map tools (ArcGIS JavaScript API widgets) for this view.
status
Class Propertystatus: JimuMapViewStatusThe status of the JimuMapView instance. JimuMapViewStatus enumeration members include "LOADING" , "LOADED" and "FAILED" .
view
Class Propertyview: MapView | SceneViewThe view is the ArcGIS Maps SDK for JavaScript View , including a
MapView or a
SceneView . In the ArcGIS Maps SDK for JavaScript,
the MapView and SceneView are part of the __esri namespace types. Thus, their types are __esri.MapView and __esri.SceneView .
Methods
| Method | Returns | Notes |
|---|---|---|
addJimuLayerViewCreatedListener(listener) | void | The listener will be triggered when JimuLayerView is created and ready to use. |
addJimuLayerViewRemovedListener(listener) | void | The listener will be triggered when JimuLayerView is removed from JimuMapView. |
addJimuLayerViewsVisibleChangeListener(listener) | void | The listener will be triggered when JimuLayerView visibility is changed. |
addLayerAndCreateJimuLayerView(layer, dataSource) | Promise<JimuLayerView> | Add layer into map and create JimuLayerView for it. The dataSource is the related data source of the layer.
In most cases, layer is created by |
clearSelectedFeatures() | void | Clear the selected features. |
createJimuLayerView(layerOrSubLayer, parentJimuLayerId, index, runtimeAddedDataSource?, fromRuntime?) | Promise<JimuLayerView> | Create the JimuLayerView and add it into the jimuLayerViews object. Resolve the promise when it is ready. |
destroy() | void | Destroy the |
getAllChildJimuLayerViews(jimuLayerViewId) | JimuLayerView[] | Return all child JimuLayerViews. |
getAllJimuLayerViews() | JimuLayerView[] | Return all loaded JimuLayerViews. This method will sort JimuLayerViews by layer rendering order.
JimuLayerViews are created and loaded asynchronously. If you want to get all JimuLayerViews in the map, you need to call this method after |
getChildJimuLayerViewIds(jimuLayerViewId) | string[] | Return the direct child JimuLayerView ids. |
getChildJimuLayerViews(jimuLayerViewId) | JimuLayerView[] | Return the direct child JimuLayerViews. |
getDataSourceIdByAPILayer(layerOrSubLayer) | string | Get dataSourceId by ArcGIS Maps SDK for JavaScript Layer or Sublayer. |
getJimuLayerViewByAPILayer(layerOrSubLayer) | JimuLayerView | Get JimuLayerView by ArcGIS Maps SDK for JavaScript Layer or Sublayer. |
getJimuLayerViewByDataSourceId(dataSourceId) | JimuLayerView | Get JimuLayerView by dataSourceId. |
getJimuLayerViewIdByAPILayer(layerOrSubLayer) | any | Get jimuLayerViewId by ArcGIS Maps SDK for JavaScript Layer or Sublayer. |
getJimuTables() | JimuTable[] | Return all JimuTables. This method should be called after |
getMapDataSource() | MapDataSource | Get the map data source bound to JimuMapView. |
getParentJimuLayerViews(jimuLayerViewId) | JimuLayerView[] | Return all parent JimuLayerViews. |
getSelectedFeatures() | Promise<Graphic[]> | Get all selected features in the map. |
isDestroyed() | boolean | Indicates if the JimuMapView is destroyed or not. Returns true if the view is not created or if the view is destroyed, otherwise returns false. |
removeJimuLayerView(jimuLayerView) | void | Remove jimuLayerView from jimuMapView and destroy the jimuLayerView. Note, this method will also remove all the children jimuLayerViews. |
removeJimuLayerViewCreatedListener(listener) | void | Remove the JimuLayerViewCreatedListener. |
removeJimuLayerViewRemovedListener(listener) | void | Remove the JimuLayerViewRemovedListener. |
removeJimuLayerViewsVisibleChangeListener(listener) | void | Remove the JimuLayerViewsVisibleChangedListener. |
removeLayerFromMap(targetLayerId) | void | |
selectFeaturesByGraphic(graphic, spatialRelationship, selectionMode, options?) | Promise<{}> | Select features in all layers in the map by a graphic. |
sortJimuLayerViewsByLayerOrder(jimuLayerViews) | JimuLayerView[] | Sort JimuLayerViews by layer rendering order. This method does not change the |
whenAllJimuLayerViewLoaded() | Promise<JimuLayerViews> | Return the loaded JimuLayerViews only. |
whenJimuLayerViewLoaded(jimuLayerViewId) | Promise<JimuLayerView> | Return the JimuLayerView when it's loaded. |
whenJimuLayerViewLoadedByDataSource(ds) | Promise<JimuLayerView> | |
whenJimuMapViewLoaded() | Promise<JimuMapView> | Resolve the JimuMapView when it is loaded. |
addJimuLayerViewCreatedListener
Class MethodaddJimuLayerViewCreatedListener(listener: JimuLayerViewCreatedListener): voidThe listener will be triggered when JimuLayerView is created and ready to use.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewCreatedListener |
Returns
voidaddJimuLayerViewRemovedListener
Class MethodaddJimuLayerViewRemovedListener(listener: JimuLayerViewRemovedListener): voidThe listener will be triggered when JimuLayerView is removed from JimuMapView.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewRemovedListener |
Returns
voidaddJimuLayerViewsVisibleChangeListener
Class MethodaddJimuLayerViewsVisibleChangeListener(listener: JimuLayerViewsVisibleChangedListener): voidThe listener will be triggered when JimuLayerView visibility is changed.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewsVisibleChangedListener |
Returns
voidaddLayerAndCreateJimuLayerView
Class MethodaddLayerAndCreateJimuLayerView(layer: Layer, dataSource: DataSource): Promise<JimuLayerView>Add layer into map and create JimuLayerView for it. The dataSource is the related data source of the layer.
In most cases, layer is created by dataSource.createJSAPILayerByDataSource() method.
Parameters
| Parameter | Type |
|---|---|
layer | Layer |
data | DataSource |
Returns
Promise<JimuLayerView>clearSelectedFeatures
Class MethodclearSelectedFeatures(): voidClear the selected features.
Returns
voidcreateJimuLayerView
Class MethodcreateJimuLayerView(layerOrSubLayer: Layer | ArcGISSubLayer, parentJimuLayerId: string, index: number, runtimeAddedDataSource?: DataSource, fromRuntime?: boolean): Promise<JimuLayerView>Create the JimuLayerView and add it into the jimuLayerViews object. Resolve the promise when it is ready.
Parameters
| Parameter | Type | Notes |
|---|---|---|
layer | Layer | ArcGISSubLayer | the layer can be a Layer or a SubLayer |
parent | string | the layer's parent JimuLayerView ID |
index | number | layer index |
runtime | DataSource | Optional, the layer data source added at runtime. |
from | boolean | Optional, true means the JimuLayerView is created from runtime. e.g. The JimuLayerView is created by AddData widget at runtime. false means the layer is a builtin layer of WebMap or WebScene. |
Returns
Promise<JimuLayerView>destroy
Class Methoddestroy(): voidDestroy the JimuMapView instance and the ArcGIS Maps SDK for JavaScript View at the same time.
Returns
voidgetAllChildJimuLayerViews
Class MethodgetAllChildJimuLayerViews(jimuLayerViewId: string): JimuLayerView[]Return all child JimuLayerViews.
Parameters
| Parameter | Type |
|---|---|
jimu | string |
Returns
JimuLayerView[]getAllJimuLayerViews
Class MethodgetAllJimuLayerViews(): JimuLayerView[]Return all loaded JimuLayerViews. This method will sort JimuLayerViews by layer rendering order.
JimuLayerViews are created and loaded asynchronously. If you want to get all JimuLayerViews in the map, you need to call this method after jimuMapView.whenAllJimuLayerViewLoaded() resolves.
Returns
JimuLayerView[]getChildJimuLayerViewIds
Class MethodgetChildJimuLayerViewIds(jimuLayerViewId: any): string[]Return the direct child JimuLayerView ids.
Parameters
| Parameter | Type |
|---|---|
jimu | any |
Returns
string[]getChildJimuLayerViews
Class MethodgetChildJimuLayerViews(jimuLayerViewId: string): JimuLayerView[]Return the direct child JimuLayerViews.
Parameters
| Parameter | Type |
|---|---|
jimu | string |
Returns
JimuLayerView[]getDataSourceIdByAPILayer
Class MethodgetDataSourceIdByAPILayer(layerOrSubLayer: Layer | ArcGISSubLayer): stringGet dataSourceId by ArcGIS Maps SDK for JavaScript Layer or Sublayer.
Parameters
| Parameter | Type | Notes |
|---|---|---|
layer | Layer | ArcGISSubLayer | ArcGIS Maps SDK for JavaScript Layer or Sublayer |
Returns
stringgetJimuLayerViewByAPILayer
Class MethodgetJimuLayerViewByAPILayer(layerOrSubLayer: Layer | ArcGISSubLayer): JimuLayerViewGet JimuLayerView by ArcGIS Maps SDK for JavaScript Layer or Sublayer.
Parameters
| Parameter | Type | Notes |
|---|---|---|
layer | Layer | ArcGISSubLayer | ArcGIS Maps SDK for JavaScript Layer or Sublayer |
Returns
JimuLayerViewgetJimuLayerViewByDataSourceId
Class MethodgetJimuLayerViewByDataSourceId(dataSourceId: string): JimuLayerViewGet JimuLayerView by dataSourceId.
Parameters
| Parameter | Type | Notes |
|---|---|---|
data | string | data source id |
Returns
JimuLayerViewgetJimuLayerViewIdByAPILayer
Class MethodgetJimuLayerViewIdByAPILayer(layerOrSubLayer: Layer | ArcGISSubLayer): anyGet jimuLayerViewId by ArcGIS Maps SDK for JavaScript Layer or Sublayer.
Parameters
| Parameter | Type | Notes |
|---|---|---|
layer | Layer | ArcGISSubLayer | ArcGIS Maps SDK for JavaScript Layer or Sublayer |
Returns
anygetJimuTables
Class MethodgetJimuTables(): JimuTable[]Return all JimuTables. This method should be called after jimuMapView.whenJimuMapViewLoaded() resolves.
Returns
JimuTable[]getMapDataSource
Class MethodgetMapDataSource(): MapDataSourceGet the map data source bound to JimuMapView.
Returns
MapDataSourcegetParentJimuLayerViews
Class MethodgetParentJimuLayerViews(jimuLayerViewId: string): JimuLayerView[]Return all parent JimuLayerViews.
Parameters
| Parameter | Type |
|---|---|
jimu | string |
Returns
JimuLayerView[]getSelectedFeatures
Class MethodgetSelectedFeatures(): Promise<Graphic[]>Get all selected features in the map.
Returns
Promise<Graphic[]>isDestroyed
Class MethodisDestroyed(): booleanIndicates if the JimuMapView is destroyed or not. Returns true if the view is not created or if the view is destroyed, otherwise returns false.
Returns
booleanremoveJimuLayerView
Class MethodremoveJimuLayerView(jimuLayerView: JimuLayerView): voidRemove jimuLayerView from jimuMapView and destroy the jimuLayerView. Note, this method will also remove all the children jimuLayerViews.
Parameters
| Parameter | Type | Notes |
|---|---|---|
jimu | JimuLayerView | Note, |
Returns
voidremoveJimuLayerViewCreatedListener
Class MethodremoveJimuLayerViewCreatedListener(listener: JimuLayerViewCreatedListener): voidRemove the JimuLayerViewCreatedListener.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewCreatedListener |
Returns
voidremoveJimuLayerViewRemovedListener
Class MethodremoveJimuLayerViewRemovedListener(listener: JimuLayerViewRemovedListener): voidRemove the JimuLayerViewRemovedListener.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewRemovedListener |
Returns
voidremoveJimuLayerViewsVisibleChangeListener
Class MethodremoveJimuLayerViewsVisibleChangeListener(listener: JimuLayerViewsVisibleChangedListener): voidRemove the JimuLayerViewsVisibleChangedListener.
Parameters
| Parameter | Type |
|---|---|
listener | JimuLayerViewsVisibleChangedListener |
Returns
voidremoveLayerFromMap
removeLayerFromMap(targetLayerId: string): voidParameters
| Parameter | Type |
|---|---|
target | string |
Returns
voidselectFeaturesByGraphic
Class MethodselectFeaturesByGraphic(graphic: Graphic, spatialRelationship: string, selectionMode: DataSourceSelectionMode, options?: { filterJimuLayerView?: (jimuLayerView: JimuLayerView) => boolean; outSR?: ISpatialReference; returnAllFields?: boolean; returnFullGeometry?: boolean }): Promise<{}>Select features in all layers in the map by a graphic.
Parameters
| Parameter | Type | Notes |
|---|---|---|
graphic | Graphic | This is the ArcGIS Maps SDK for JavaScript |
spatial | string | This parameter defines the spatial relationship to query features in the layer, see details here. |
selection | DataSourceSelectionMode | This parameter is to indicate how the new select operation affects the original selection. It can only be the following enumeration values: |
options | { filterJimuLayerView?: (jimuLayerView: JimuLayerView) => boolean; outSR?: ISpatialReference; returnAllFields?: boolean; returnFullGeometry?: boolean } | If options.returnAllFields is true, the returned features will contain all fields, otherwise the value will contain the necessary fields. If options.returnFullGeometry is true, the returned features will have full precision geometry. By default, the spatial reference of the returned features is the same as the layer's spatial reference, but you can change this behavior by setting options.outSR. By default, this method selects all eligible JimuLayerViews in the map. If you only want to select some specific JimuLayerViews, you can set options.filterJimuLayerView, which is a callback function. If the return value is true, it will be selected, otherwise it will not be selected. |
Returns
Promise<{}>sortJimuLayerViewsByLayerOrder
Class MethodsortJimuLayerViewsByLayerOrder(jimuLayerViews: JimuLayerView[]): JimuLayerView[]Sort JimuLayerViews by layer rendering order. This method does not change the jimuLayerViews parameter, but returns a new sorted array.
Parameters
| Parameter | Type | Notes |
|---|---|---|
jimu | JimuLayerView[] | The JimuLayerView array that need to be sorted. |
Returns
JimuLayerView[]whenAllJimuLayerViewLoaded
Class MethodwhenAllJimuLayerViewLoaded(): Promise<JimuLayerViews>Return the loaded JimuLayerViews only.
Returns
Promise<JimuLayerViews>whenJimuLayerViewLoaded
Class MethodwhenJimuLayerViewLoaded(jimuLayerViewId: string): Promise<JimuLayerView>Return the JimuLayerView when it's loaded.
For a JimuLayerView id, the instance may not have been created, but we can make sure the first level JimuLayerView are created. So, for a JimuLayerView id, we'll make sure its parent JimuLayerView get created and ready, and the JimuLayerView will create its children JimuLayerViews in the ready().
Parameters
| Parameter | Type |
|---|---|
jimu | string |
Returns
Promise<JimuLayerView>whenJimuLayerViewLoadedByDataSource
Class MethodwhenJimuLayerViewLoadedByDataSource(ds: DataSource): Promise<JimuLayerView>Parameters
| Parameter | Type |
|---|---|
ds | DataSource |
Returns
Promise<JimuLayerView>whenJimuMapViewLoaded
Class MethodwhenJimuMapViewLoaded(): Promise<JimuMapView>Resolve the JimuMapView when it is loaded.
Returns
Promise<JimuMapView>