SceneServiceDataSource
Interface
SceneServiceDataSource
is created from scene service or webscene.
Properties
Property | Type | Notes |
---|---|---|
() => void | ||
() => void | ||
() => boolean | ||
The data source which this data source derives from. | ||
(data: any) => DataRecord | ||
(gdbVersion: string) => void | ||
() => Promise<DataSource[]> | ||
() => void | ||
() => void | ||
number | The total records count depends on the current query | |
(dataSourceId: string) => Promise<DataSource> | ||
string | The data view ID configured in Json. | |
() => Promise<IMDataSourceSchema> | ||
() => DataSource[] | ||
() => DataSource[] | ||
(jimuChildId: string) => DataSource | ||
() => DataSource[] | ||
() => DataSourceStatus | ||
() => IMDataSourceJson | ||
(dataViewId: string) => DataSource | ||
() => DataSource[] | ||
() => string | ||
() => string | ||
() => IMDataSourceInfo | ||
() => string | ||
() => boolean | ||
(localId: string) => DataSource | ||
() => DataSource[] | ||
() => DataSource | ||
(index: number) => DataRecord | ||
(id: string) => DataRecord | ||
() => DataRecord[] | ||
() => DataRecord[] | ||
() => DataSource | ||
() => IMDataSourceSchema | ||
() => string[] | ||
() => number[] | ||
() => DataRecord[] | ||
() => DataRecord[] | ||
() => number | ||
() => DataSourceStatus | ||
() => number | ||
string | The data source ID. | |
boolean | Whether a data source contains child data sources.
A dataset data source should create all its child data sources before | |
boolean | True means the data source is a data view. For local data source, this is false even the local data source is created from a data view. | |
() => boolean | ||
boolean | True means the data source is a local data source. | |
Layer | ArcGISSubLayer | 1 How to use ArcGIS Maps SDK for JavaScript layer
1.1 a data source may have a layer, the layer is the source of the data source ( | |
string | The local ID of the data source. | |
number | Order in the parent data source. | |
The parent data source of this data source, mull means it's a root data source. | ||
() => Promise<any> | ||
(id: string, record?: DataRecord, forceCheck?: boolean) => void | ||
(ids: string[], records?: DataRecord[], forceCheck?: boolean) => void | ||
(status: DataSourceStatus) => void | ||
(dsJson: IMDataSourceJson) => void | ||
(listen: boolean) => void | ||
(records: DataRecord[]) => void | ||
(records: DataRecord[]) => void | ||
(status: DataSourceStatus) => void | ||
(ids: string[], triggerDataSource: DataSource, forceCheck?: boolean) => void |
addVersion
addVersion: () => void
Type declaration
function(): void
Update data source version.
Returns
void
areChildDataSourcesCreated
areChildDataSourcesCreated: () => boolean
Type declaration
function(): boolean
Return whether all child data sources (including descendant data sources) are created.
Data source has this method only if it is data source set ( dataSource.isDataSourceSet
is true).
Returns
boolean
belongToDataSource
belongToDataSource: DataSource
The data source which this data source derives from.
buildRecord
buildRecord: (data: any) => DataRecord
Type declaration
function(data: any): DataRecord
Builds a data record only -- does not add the record into data source.
Parameters
Parameter | Type |
---|---|
data | any |
Returns
DataRecord
changeGDBVersion
changeGDBVersion: (gdbVersion: string) => void
Type declaration
function(gdbVersion: string): void
Change the GDB version for all layers in the service.
Parameters
Parameter | Type |
---|---|
gdb | string |
Returns
void
childDataSourcesReady
childDataSourcesReady: () => Promise<DataSource[]>
Type declaration
function(): Promise<DataSource[]>
All child data sources (including descendant data sources) are ready for use.
Data source has this method only if it is data source set ( dataSource.isDataSourceSet
is true).
Returns
Promise<DataSource[]>
clearRecords
clearRecords: () => void
Type declaration
function(): void
This function will clear the loaded records and won't clear the sourceRecords. Once the loaded records are cleared, the version in the data source info will be updated.
Returns
void
clearSourceRecords
clearSourceRecords: () => void
Type declaration
function(): void
Clear both sourceRecords and loaded records. Both source version and version in data source info will be updated.
Returns
void
count
count: number
The total records count depends on the current query
createDataSourceById
createDataSourceById: (dataSourceId: string) => Promise<DataSource>
Type declaration
function(dataSourceId: string): Promise<DataSource>
Create a child or a descendant data source by id.
Data source has this method only if it is data source set ( dataSource.isDataSourceSet
is true).
Please note will only create the specific data source, won't create descendant data sources of it.
Parameters
Parameter | Type |
---|---|
data | string |
Returns
Promise<DataSource>
dataViewId
dataViewId: string
The data view ID configured in Json.
fetchSchema
fetchSchema: () => Promise<IMDataSourceSchema>
Type declaration
function(): Promise<IMDataSourceSchema>
Fetch the data schema from an actual data source. If it's a statistic data source, the schema will not be fetched.
Returns
Promise<IMDataSourceSchema>
getAllChildDataSources
getAllChildDataSources: () => DataSource[]
Type declaration
function(): DataSource[]
Return all child data sources of a parent data source, includes the grandchildren
Returns
DataSource[]
getAllDerivedDataSources
getAllDerivedDataSources: () => DataSource[]
Type declaration
function(): DataSource[]
Return the derived data views and local data sources.
Returns
DataSource[]
getChildDataSource
getChildDataSource: (jimuChildId: string) => DataSource
Type declaration
function(jimuChildId: string): DataSource
Get child data source by jimuChildId
. You can get jimuChildId
by getJimuChildId()
.
Parameters
Parameter | Type |
---|---|
jimu | string |
Returns
DataSource
getChildDataSources
getChildDataSources: () => DataSource[]
Type declaration
function(): DataSource[]
Return child data sources of a parent data source.
Returns
DataSource[]
getCountStatus
getCountStatus: () => DataSourceStatus
Type declaration
function(): DataSourceStatus
Return data source count status.
Returns
DataSourceStatus
getDataSourceJson
getDataSourceJson: () => IMDataSourceJson
Type declaration
function(): IMDataSourceJson
The data source JSON object in app config.
Returns
IMDataSourceJson
getDataView
getDataView: (dataViewId: string) => DataSource
Type declaration
function(dataViewId: string): DataSource
Get data view by data view ID.
Parameters
Parameter | Type |
---|---|
data | string |
Returns
DataSource
getDataViews
getDataViews: () => DataSource[]
Type declaration
function(): DataSource[]
Return all data views created from a main data source.
Returns
DataSource[]
getGDBVersion
getGDBVersion: () => string
Type declaration
function(): string
Get the service GDB version.
Returns
string
getIdField
getIdField: () => string
Type declaration
function(): string
Return the data source ID field.
Returns
string
getInfo
getInfo: () => IMDataSourceInfo
Type declaration
function(): IMDataSourceInfo
Return the data source info in redux store.
Returns
IMDataSourceInfo
getLabel
getLabel: () => string
Type declaration
function(): string
Return data source label.
Returns
string
getListenSelection
getListenSelection: () => boolean
Type declaration
function(): boolean
Return whether listen selection.
Returns
boolean
getLocalDataSource
getLocalDataSource: (localId: string) => DataSource
Type declaration
function(localId: string): DataSource
Get local data source by local ID.
Parameters
Parameter | Type |
---|---|
local | string |
Returns
DataSource
getLocalDataSources
getLocalDataSources: () => DataSource[]
Type declaration
function(): DataSource[]
Return all local data sources created from a main data source or data view.
Returns
DataSource[]
getMainDataSource
getMainDataSource: () => DataSource
Type declaration
function(): DataSource
Return the main data source.
Returns
DataSource
getRecord
getRecord: (index: number) => DataRecord
Type declaration
function(index: number): DataRecord
Get record by index
Parameters
Parameter | Type |
---|---|
index | number |
Returns
DataRecord
getRecordById
getRecordById: (id: string) => DataRecord
Type declaration
function(id: string): DataRecord
Get record by ID
Parameters
Parameter | Type |
---|---|
id | string |
Returns
DataRecord
getRecords
getRecords: () => DataRecord[]
Type declaration
function(): DataRecord[]
Get records
Returns
DataRecord[]
getRecordsWithSelection
getRecordsWithSelection: () => DataRecord[]
Type declaration
function(): DataRecord[]
If selected records are not loaded in the current data source, they will be concatenated to the end of records array. For example, record 1 is selected in data view 1 and it is not loaded in data view 2 (record 1 actually matches query params of data view 2), dataView2.getRecordsWithSelection() will return all loaded records in data view 2 and record 1.
Returns
DataRecord[]
getRootDataSource
getRootDataSource: () => DataSource
Type declaration
function(): DataSource
Return the root data source.
Returns
DataSource
getSchema
getSchema: () => IMDataSourceSchema
Type declaration
function(): IMDataSourceSchema
The schema returned here is the merged result of the configured schema and the fetched schema.
Returns
IMDataSourceSchema
getSelectedRecordIds
getSelectedRecordIds: () => string[]
Type declaration
function(): string[]
Get selected record IDs
Returns
string[]
getSelectedRecordIndexes
getSelectedRecordIndexes: () => number[]
Type declaration
function(): number[]
Get selected record indexes
Returns
number[]
getSelectedRecords
getSelectedRecords: () => DataRecord[]
Type declaration
function(): DataRecord[]
Get selected records
Returns
DataRecord[]
getSourceRecords
getSourceRecords: () => DataRecord[]
Type declaration
function(): DataRecord[]
Return the source records
Returns
DataRecord[]
getSourceVersion
getSourceVersion: () => number
Type declaration
function(): number
When current data source is created from an array of records, it will be saved in sourceRecords
.
Return the version of sourceRecords
.
Returns
number
getStatus
getStatus: () => DataSourceStatus
Type declaration
function(): DataSourceStatus
Return data source status.
Returns
DataSourceStatus
getVersion
getVersion: () => number
Type declaration
function(): number
Return data source version.
Returns
number
isDataSourceSet
isDataSourceSet: boolean
Whether a data source contains child data sources.
A dataset data source should create all its child data sources before ready()
is resolved.
isDataView
isDataView: boolean
True means the data source is a data view. For local data source, this is false even the local data source is created from a data view.
isInAppConfig
isInAppConfig: () => boolean
Type declaration
function(): boolean
Return whether the data source is added in builder and is saved in app config.
Returns
boolean
isLocal
isLocal: boolean
True means the data source is a local data source.
layer
layer: Layer | ArcGISSubLayer
1 How to use ArcGIS Maps SDK for JavaScript layer
1.1 a data source may have a layer, the layer is the source of the data source ( isDataInDataSourceInstance
should be false) and is used to save source data and communicate with Maps SDK for JavaScript (get popupTemplate, symbol and so on), if want to query features, should use data source instance, not the layer.
1.2 main data source and all other data views/local data source share the same layer.
1.3 selection view create a new layer when do query, but doesn't save the layer.
1.4 if widget needs an ArcGIS Maps SDK for JavaScript layer, call dataSource.createJSAPILayerByDataSource()
to create a new layer, do not use the layer in data source instance directly, to listen data source changes and apply the changes to the new layer, see 2.2.
2 How to listen data source changes via DataSourceComponent
2.1 if widget loads records, use onDataSourceInfoChange
to listen selected records change, query params change and loaded records change.
2.2 if widget doesn't load records (use a Maps SDK for JavaScript widget and needs an ArcGIS Maps SDK for JavaScript layer), use onQueryRequired
to listen query params change, use onSelectionChange
to listen selected records change.
3 Relation between output data source and origin data source
3.1 if schema is not changed (e.g. query output) and only has one origin data source, will use origin data source's layerDefinition
, popupInfo
and Maps SDK for JavaScript layer
.
3.2 if schema is changed (e.g. chart output), need widget to set layerDefinition
, popupInfo
and Maps SDK for JavaScript layer
to data source instance.
localId
localId: string
The local ID of the data source.
order
order: number
Order in the parent data source.
parentDataSource
parentDataSource: DataSource
The parent data source of this data source, mull means it's a root data source.
ready
ready: () => Promise<any>
Type declaration
function(): Promise<any>
Ready is resolved means the data source instance is ready for use.
Returns
Promise<any>
selectRecordById
selectRecordById: (id: string, record?: DataRecord, forceCheck?: boolean) => void
Type declaration
function(id: string, record?: DataRecord, forceCheck?: boolean): void
Select a record by ID.
When select record by ID, we can pass in the record. So when the selected record is not loaded, we can add it in.
If forceCheck
is true, will check whether the record match filters of the data source or not. Will select the record only if the check is passed.
Parameters
Parameter | Type | Notes |
---|---|---|
id | string | The ID to be selected. The selection will be cleared if the ID is null. |
record | DataRecord | |
force | boolean |
Returns
void
selectRecordsByIds
selectRecordsByIds: (ids: string[], records?: DataRecord[], forceCheck?: boolean) => void
Type declaration
function(ids: string[], records?: DataRecord[], forceCheck?: boolean): void
Select records by IDs.
When select records by IDs, we can pass in the records. So when the selected records are not loaded, we can add them in.
If forceCheck
is true, will check whether these records match filters of the data source or not. Will select the records which check is passed.
Parameters
Parameter | Type | Notes |
---|---|---|
ids | string[] | The IDs to be selected. The selection will be cleared if the IDs are null. |
records | DataRecord[] | |
force | boolean |
Returns
void
setCountStatus
setCountStatus: (status: DataSourceStatus) => void
Type declaration
function(status: DataSourceStatus): void
Update data source count status.
Parameters
Parameter | Type |
---|---|
status | DataSourceStatus |
Returns
void
setDataSourceJson
setDataSourceJson: (dsJson: IMDataSourceJson) => void
Type declaration
function(dsJson: IMDataSourceJson): void
Update data source JSON in data source instance
Parameters
Parameter | Type |
---|---|
d | IMDataSourceJson |
Returns
void
setListenSelection
setListenSelection: (listen: boolean) => void
Type declaration
function(listen: boolean): void
Whether listen selected records from other data sources which are derived from the same main data source. If true, will update selected record IDs of current data source info when selecting records via other derived data sources. Will also update selected record IDs when selecting records via current data source itself. If false, won't change selected record IDs when selecting records via other derived data sources. Will update selected record IDs only when selecting records via current data source itself.
Main data source and its data views will listen selected records by default, local data source does not listen selected records by default.
Parameters
Parameter | Type |
---|---|
listen | boolean |
Returns
void
setRecords
setRecords: (records: DataRecord[]) => void
Type declaration
function(records: DataRecord[]): void
Update the records in the data source object only, does not update the source data.
Parameters
Parameter | Type |
---|---|
records | DataRecord[] |
Returns
void
setSourceRecords
setSourceRecords: (records: DataRecord[]) => void
Type declaration
function(records: DataRecord[]): void
When current data source is created from an array of records, will save it in sourceRecords
.
These two methods are used to update or get the source data.
Parameters
Parameter | Type |
---|---|
records | DataRecord[] |
Returns
void
setStatus
setStatus: (status: DataSourceStatus) => void
Type declaration
function(status: DataSourceStatus): void
Update data source status.
Parameters
Parameter | Type |
---|---|
status | DataSourceStatus |
Returns
void
updateSelectionInfo
updateSelectionInfo: (ids: string[], triggerDataSource: DataSource, forceCheck?: boolean) => void
Type declaration
function(ids: string[], triggerDataSource: DataSource, forceCheck?: boolean): void
Update selected record IDs in data source info if the current data source listens selection change (see setListenSelection
) or the current data source is the trigger data source (that is to say, select via it).
Before update info, will check whether these selected records match filters of the current data source firstly, and then only set the matched selected records to info.
Will skip the check in some cases to improve performance if the forceCheck
is not passed in or is false. For example, if the curren data source is main data source (we suppose that main data source contains all records, no need to check).
But if the forceCheck
is true, won't skip the check.
Parameters
Parameter | Type |
---|---|
ids | string[] |
trigger | DataSource |
force | boolean |
Returns
void
addSourceVersion: () => void
Type declaration
function(): void
When current data source is created from an array of records, it will be saved in
sourceRecords
. Add the version ofsourceRecords
.setSourceRecords
will add the version by default.Returns
void