java.lang.Object | |||
↳ | com.esri.android.map.Layer | ||
↳ | com.esri.android.map.GraphicsLayer | ||
↳ | com.esri.android.map.ags.ArcGISFeatureLayer |
ArcGISFeatureLayer is a special type of GraphicsLayer
that allows you to display features from a layer hosted
by an ArcGIS Server map service or feature service. The layer can be either a spatial layer or a non-spatial table.
If the layer is editable, you can add, update and delete features. The following are examples of how you might work
with the ArcGISFeatureLayer class.
Java usage:
// Retrieve the map and initial extent from XML layout mMapView = (MapView)findViewById(R.id.map); // create layers basemap = new ArcGISTiledMapServiceLayer(this.getResources().getString(R.string.basemap_url)); windTurbine = new ArcGISFeatureLayer(this.getResources().getString(R.string.featurelayer_url), MODE.SNAPSHOT); // add basemap layer mMapView.addLayer(basemap); // add feature layer mMapView.addLayer(windTurbine);
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
class | ArcGISFeatureLayer.EditCapabilities | ||||||||||
enum | ArcGISFeatureLayer.MODE | The feature layer can work under 3 modes. | |||||||||
class | ArcGISFeatureLayer.Options | The options to instantiate the feature layer. | |||||||||
enum | ArcGISFeatureLayer.SELECTION_METHOD | The modes used for the select features method. |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.esri.android.map.Layer
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ArcGISFeatureLayer(String url, ArcGISFeatureLayer.Options layerOption)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
| |||||||||||
ArcGISFeatureLayer(String url, ArcGISFeatureLayer.Options layerOption, UserCredentials credentials)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
| |||||||||||
ArcGISFeatureLayer(String url, ArcGISFeatureLayer.MODE mode)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description
for an example of this usage).
| |||||||||||
ArcGISFeatureLayer(String url, String layerDefinition, ArcGISFeatureLayer.MODE mode)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
| |||||||||||
ArcGISFeatureLayer(String url, String layerDefinition, ArcGISFeatureLayer.MODE mode, boolean initLayer)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description
for an example of this usage).
| |||||||||||
ArcGISFeatureLayer(String url, String layerDefinition, ArcGISFeatureLayer.MODE mode, boolean initLayer, UserCredentials credentials)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description
for an example of this usage).
| |||||||||||
ArcGISFeatureLayer(String url, ArcGISFeatureLayer.MODE mode, UserCredentials credentials)
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
| |||||||||||
ArcGISFeatureLayer(String layerDefinition, FeatureSet featureCollection, ArcGISFeatureLayer.Options layerOption)
The constructor is used if you are instantiating the ArcGISFeatureLayer using a feature collection.
| |||||||||||
ArcGISFeatureLayer(String layerDef, String layerDefinitionOverride, FeatureSet featureCollection, ArcGISFeatureLayer.Options layerOption, boolean initLayer)
This constructor is to be used with a mapnotes layer defined in webmap only.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
addAttachment(int objectId, File file, CallbackListener<FeatureEditResult> callback)
Adds an attachment to the feature specified by the ObjectId.
| ||||||||||
void |
addAttachment(int objectId, File file, String mime, CallbackListener<FeatureEditResult> callback)
Adds an attachment to the feature specified by the ObjectId.
| ||||||||||
void |
applyEdits(Graphic[] adds, Graphic[] deletes, Graphic[] updates, CallbackListener<FeatureEditResult[][]> callback)
Applies edits to the editable feature layer.
| ||||||||||
void |
clear()
Clears all selection and removes all graphics from the layer.
| ||||||||||
Graphic |
createFeatureWithTemplate(FeatureTemplate template, Geometry geometry)
Creates a new feature based on the specified feature SubType and feature template.
| ||||||||||
Graphic |
createFeatureWithType(FeatureType type, Geometry geometry)
Creates a new feature based on the specified feature SubType.
| ||||||||||
ArcGISPopupInfo |
createPopupInfo()
Creates the popup info.
| ||||||||||
void |
deleteAttachments(int objectId, int[] attachmentids, CallbackListener<FeatureEditResult[]> callback)
Deletes one or more attachments for the feature specified by the input ObjectId.
| ||||||||||
int |
getBufferFactor()
Returns the factor used to calculate buffered extent.
| ||||||||||
String |
getCapabilities()
Gets the capabilities list of the associated feature service.
| ||||||||||
String |
getDefaultDefinitionExpression()
Returns the Metadata describing the default definition expression for the layer as defined by the service.
| ||||||||||
String |
getDefinitionExpression()
Returns the current definition expression.
| ||||||||||
String |
getDisplayField()
Returns the name of the field that contains the Display Field for the layer.
| ||||||||||
ArcGISFeatureLayer.EditCapabilities |
getEditCapabilities(Graphic graphic)
Gets the edit capabilities.
| ||||||||||
EditFieldsInfo |
getEditFieldsInfo()
Gets the edit fields info.
| ||||||||||
EditInfo |
getEditInfo(Graphic graphic, EditInfo.ACTION_TYPE action)
Gets the available editing information for the graphic.
| ||||||||||
int |
getExpirationInterval()
Returns the time interval in seconds that features in the layer will expire when the layer is in ONDEMAND mode.
| ||||||||||
Field |
getField(String fieldName)
This method returns the field object when the fieldname is passed in.
| ||||||||||
Field[] |
getFields()
The array of fields in the layer.
| ||||||||||
Geometry.Type |
getGeometryType()
Gets the type of the geometry holding by the feature layer.
| ||||||||||
String |
getGlobalIdField()
Returns the name of the field that contains the GlobalId field for the layer.
| ||||||||||
ArcGISFeatureLayer.MODE |
getMode()
Returns the layer mode.
| ||||||||||
String |
getObjectIdField()
Returns the name of the field that contains the ObjectID field for the layer.
| ||||||||||
String[] |
getOutFields()
The array of field names included in the feature layer based on the ArcGISFeatureLayer.Options.outFields parameter.
| ||||||||||
OwnershipBasedAccessControlForFeatures |
getOwnershipBasedAccessControlForFeatures()
Gets the ownership based access control for features.
| ||||||||||
ArcGISPopupInfo |
getPopupInfo(int sublayerId)
Gets the
PopupInfo associated with the sub-layer id. | ||||||||||
ArcGISPopupInfo |
getPopupInfo()
Gets the
PopupInfo associated with this feature layer. | ||||||||||
Graphic[] |
getSelectedFeatures()
Returns the selected features.
| ||||||||||
Symbol |
getSelectionSymbol()
Returns the selection symbol for the feature layer.
| ||||||||||
FeatureTemplate[] |
getTemplates()
Returns an array of feature templates defined in the feature service layer.
| ||||||||||
TimeExtent |
getTimeExtent()
Gets the valid TimeExtent object for the Layer or null if this service does not support time based queries.
| ||||||||||
TimeInfo |
getTimeInfo()
Get all the time awareness information for this layer.@return
| ||||||||||
TimeExtent |
getTimeInterval()
Get the current date/time range that this layer is filtered by.
| ||||||||||
FeatureType |
getType(String type)
Gets the type.
| ||||||||||
String |
getTypeIdField()
Returns the name of the field that contains the SubType field for the layer.
| ||||||||||
FeatureType[] |
getTypes()
Returns an array of feature types defined in the feature service layer.
| ||||||||||
boolean |
hasAttachments()
True if attachments are enabled on the feature layer.
| ||||||||||
boolean |
isAllowGeometryUpdates()
Returns true if the geometry of the features in the layer can be edited.
| ||||||||||
boolean |
isAutoRefreshOnExpiration()
True if the layer will refresh automatically when the expiration interval is reached.
| ||||||||||
boolean |
isEditable()
Returns true if the feature layer is editable.
| ||||||||||
boolean |
isPopupAllowGeometryUpdate(Graphic graphic)
Returns true if this PopupView is editable, false otherwise.
| ||||||||||
boolean |
isPopupDeletable(Graphic graphic)
Returns true if this Popup is deletable, false otherwise.
| ||||||||||
boolean |
isPopupEditable(Graphic graphic)
Returns true if this Popup is editable, false otherwise.
| ||||||||||
boolean |
isTable()
Returns
true if the type of layer is "Table". | ||||||||||
boolean |
isTimeAware()
Indicates whether or not this particular layer instance is time aware.
| ||||||||||
void |
queryAttachmentInfos(int objectId, CallbackListener<AttachmentInfo[]> callback)
Queries for information about attachments associated with the specified ObjectIds.
| ||||||||||
void |
queryFeatures(Query query, CallbackListener<FeatureSet> callback)
Query features from the feature layer.
| ||||||||||
void |
queryIds(Query query, CallbackListener<int[]> callback)
Query for ObjectIds.
| ||||||||||
void |
recycle()
Releases resources referenced by the Layer so that they can be recycled.
| ||||||||||
void |
refresh()
Based on the mode of the feature layer, the method call can update the graphics from the associate service or
refresh the layer from local cache.
| ||||||||||
InputStream |
retrieveAttachment(int objectId, int attachmentId)
Fetches the contents of the specified attachment.
| ||||||||||
void |
selectFeatures(Query query, ArcGISFeatureLayer.SELECTION_METHOD selectionMethod, CallbackListener<FeatureSet> callback)
Selects features from the feature layer.
| ||||||||||
void |
setAutoRefreshOnExpiration(boolean autoRefreshOnExpiration)
Specifies whether or not the layer will refresh automatically when the expiration interval is reached.
| ||||||||||
void |
setBufferFactor(int bufferFactor)
Sets the factor used to calculate buffered extent.
| ||||||||||
void |
setDefinitionExpression(String expression)
Sets the definition expression of the feature layer.
| ||||||||||
void |
setExpirationInterval(int expirationInterval)
The time interval in seconds that features in the layer will expire when the layer is in ONDEMAND mode.
| ||||||||||
void |
setPopupInfos(Map<Integer, ArcGISPopupInfo> popUpInfos)
Sets the popup infos.
| ||||||||||
void |
setSelectionSymbol(Symbol selectionSymbol)
Sets the selection symbol for the feature layer.
| ||||||||||
void |
setTimeInterval(TimeExtent timeExtent)
Set the current date/time range that this layer will be filtered by.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void | finalize() | ||||||||||
void |
initLayer()
Initializes the layer.
| ||||||||||
void |
initialUpdate()
Called when ArcGISFeatureLayer updates its content very first time.
| ||||||||||
void |
updateSpatialReferenceStatus(int SRStatus)
The callback method is invoked when the layer is added to map.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
com.esri.android.map.GraphicsLayer
| |||||||||||
From class
com.esri.android.map.Layer
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
com.esri.android.map.popup.PopupLayer
| |||||||||||
From interface
com.esri.core.map.TimeAwareLayer
|
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
url | the the URL of the feature layer service. |
---|---|
layerOption | the option parameters. Sets to null to use the default options. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
url | the the URL of the feature layer service. |
---|---|
layerOption | the option parameters. Sets to null to use the default options. |
credentials | the user credentials for accessing a secure feature layer. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description for an example of this usage).
url | the the URL of the feature layer service. |
---|---|
mode | the feature layer mode. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
url | the the URL of the feature layer service. |
---|---|
layerDefinition | The definition of the layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
mode | the feature layer mode. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description for an example of this usage).
url | the the URL of the feature layer service. |
---|---|
layerDefinition | The definition of the layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
mode | the feature layer mode. |
initLayer | set to true to initialize the the layer, or the layer will not initialized. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code (see the class description for an example of this usage).
url | the the URL of the feature layer service. |
---|---|
layerDefinition | The definition of the layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
mode | the feature layer mode. |
initLayer | set to true to initialize the the layer, or the layer will not initialized. |
credentials | the user credentials for accessing a secure feature layer. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using Java code.
url | the the URL of the feature layer service. |
---|---|
mode | the feature layer mode. |
credentials | the user credentials for accessing a secure feature layer. |
The constructor is used if you are instantiating the ArcGISFeatureLayer using a feature collection.
The feature layer, when initialized with a feature collection object has the following behavior:
You need to explicitly call clear()
to release all cached feature collection when not needed.
layerDefinition | The definition of the layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
---|---|
featureCollection | A collection of features. The spatial reference of the features must be same as the map's. |
layerOption | the option parameters. Sets to null to use the default options. |
This constructor is to be used with a mapnotes layer defined in webmap only.
layerDef | the definition of the map notes layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
---|---|
layerDefinitionOverride | the definition of the feature layer represented in a JSON String. The structure is the same as the information returned by REST for a layer in a feature or map service. |
featureCollection | the mapnotes layer |
layerOption | option parameters. |
initLayer | set to true to initialize the the layer, or the layer will not initialized. |
Adds an attachment to the feature specified by the ObjectId. Only applicable if isEditable()
and
objectId | The ObjectId of the feature to which the attachment is added. |
---|---|
file | The path of the attachment on the device. |
callback | The path of the attachment on the device. hasAttachments() are true. |
Adds an attachment to the feature specified by the ObjectId. Only applicable if isEditable()
and
objectId | The ObjectId of the feature to which the attachment is added. |
---|---|
file | The path of the attachment on the device. |
mime | the content-type to send the file. e.g. text/plain. When mime is omitted the content-type is determined by the file extension of the attachment. By default the content-type is "application/octet-stream". |
callback | The path of the attachment on the device. hasAttachments() are true. |
Applies edits to the editable feature layer. Only applicable for layers in a feature service.
adds | Apply edits to the feature layer. Only applicable for layers in a feature service. |
---|---|
deletes | Array of features to be deleted. Features must have valid ObjectIds. |
updates | Array of features whose geometry and/or attributes have changed. Features must have valid ObjectIds. The geometry of features is typically modified using the Editing tools. Attributes are modified using the Attribute Inspector. |
callback | This listener will be called when the operation is complete or on error. |
Clears all selection and removes all graphics from the layer.
Creates a new feature based on the specified feature SubType and feature template. Note, the new feature is only available on the device at this point, it is not committed to the server.
template | the feature template to use while creating the feature. |
---|---|
geometry | the geometry to create the Graphic. |
Creates a new feature based on the specified feature SubType. Note, the new feature is only available on the device at this point, it is not committed to the server. This method uses the first template in the feature type.
type | the type of feature to create. |
---|---|
geometry | the geometry to create the Graphic. |
Deletes one or more attachments for the feature specified by the input ObjectId. Only applicable if
objectId | The ObjectId of the feature from which the attachment is removed. |
---|---|
attachmentids | The ObjectId of the feature from which the attachment is removed. |
callback | This listener will be called when the operation is complete or on error. isEditable() and
hasAttachments() are true. |
Returns the factor used to calculate buffered extent. When in ONDEMAND mode, you have a choice to fetch the
features within current extent or buffered extent. The buffer is calculated as:
width = extent.width * bufferFactor * 2 + 1); height = extent.height *
(bufferFactor * 2 + 1);
By default it is 1 (100%).
Gets the capabilities list of the associated feature service. It is a comma separated list of supported capabilities - e.g. "Query, Editing". Only available if the feature service is published using ArcGIS Server version 10 or greater. You cannot call this method until the layer is loaded.
When the Feature layer is instantiated without an associated feature service (e.g. FeatureCollection Mode), the
method will always return null
.
Returns the Metadata describing the default definition expression for the layer as defined by the service. The
default definition expression limits the features available for display and query. You cannot override this value
but you define additional filters on the default expression using the setDefinitionExpression(String)
method. For example, if the default definition expression is set to display data where "STATE_NAME = 'California'"
you could use setDefinitionExpression to only display a subset of the features in California e.g.,
"COUNTY='San Diego'".
Returns the current definition expression.
Returns the name of the field that contains the Display Field for the layer.
Gets the edit capabilities.
graphic | the graphic |
---|
Gets the available editing information for the graphic.
graphic | the graphic to check. |
---|---|
action | the editing action. |
Returns the time interval in seconds that features in the layer will expire when the layer is in ONDEMAND mode. Setting this to 0 will cause the features to not expire.
This method returns the field object when the fieldname is passed in.
fieldName | name of the Field |
---|
Gets the type of the geometry holding by the feature layer. You should not call this method until the layer is initialized.
Returns the name of the field that contains the GlobalId field for the layer.
Returns the name of the field that contains the ObjectID field for the layer.
The array of field names included in the feature layer based on the ArcGISFeatureLayer.Options.outFields parameter.
If none are specified, in the ArcGISFeatureLayer.Options
class then the feature layer will return all fields and this methods
will return null. If "*" was specified in the ArcGISFeatureLayer.Options
class this method will return ["*"]. If some field
names are set in the ArcGISFeatureLayer.Options
class, but the ObjectId field was not included it will be included in the
feature layer and will also be returned in this String array.
Gets the ownership based access control for features.
Returns the selected features.
Returns the selection symbol for the feature layer. If no symbol is specified, features are drawn using the layers's renderer.
Returns an array of feature templates defined in the feature service layer. Only applicable for ArcGIS Server feature service layers.
Gets the valid TimeExtent object for the Layer or null if this service does not support time based queries.
Get the current date/time range that this layer is filtered by.
Returns the name of the field that contains the SubType field for the layer.
Returns an array of feature types defined in the feature service layer. Only applicable for ArcGIS Server feature service layers.
True if attachments are enabled on the feature layer. Use the queryAttachmentInfos(int, CallbackListener)
method to determine if the feature has attachments. If the layer is editable ( isEditable()
) and supports
attachments the following operations can be performed.
Returns true if the geometry of the features in the layer can be edited. This property is only available on ArcGIS Server 10.1 and above.
True if the layer will refresh automatically when the expiration interval is reached.
Returns true if the feature layer is editable. If the layer is editable the following operations can be performed.
Returns true if this PopupView is editable, false otherwise.
graphic | the graphic |
---|
Returns true if this Popup is deletable, false otherwise.
graphic | the graphic |
---|
Returns true if this Popup is editable, false otherwise.
graphic | the graphic |
---|
Returns true
if the type of layer is "Table". The type of a feature layer can be "Graphic Layer" or
"Table".
Indicates whether or not this particular layer instance is time aware.
Queries for information about attachments associated with the specified ObjectIds.
objectId | The ObjectId of the feature upon which the attachment information is queried. |
---|---|
callback | This listener will be called when the operation is complete or on error. |
Query features from the feature layer. Layer definition and time definition are honored. Whenever possible the feature layer will perform the query on the client.
query | The input query. The query object has the following restrictions to avoid conflicts between layer and
map properties. |
---|---|
callback | The function to call when the method has completed. |
Query for ObjectIds. There is no limit on the number of ObjectIds that are returned from the server. Like queryFeatures this operation will perform queries on the client (browser) whenever possible.
query | The input query. The query object has the following restrictions to avoid conflicts between layer and
map properties. |
---|---|
callback | The function to call when the method has completed. |
Releases resources referenced by the Layer so that they can be recycled.
Based on the mode of the feature layer, the method call can update the graphics from the associate service or refresh the layer from local cache.
Fetches the contents of the specified attachment. Please make sure call the InputStream.close() after you get the data.
objectId | the ObjectId of the feature to which the attachment belongs. |
---|---|
attachmentId | the ID of the attachment to fetch. |
Exception | the exception |
---|
Selects features from the feature layer. The selection method defines how query results are passed to the selection. The feature layer will highlight the current selection if a selection symbol has been defined. Whenever possible, the feature layer will perform the query operation on the client side.
query | The input query. |
---|---|
selectionMethod | the selection mode. |
callback | The function to call when the method is completed or on error. |
Specifies whether or not the layer will refresh automatically when the expiration interval is reached. Default is false. This is used only in ONDEMAND mode.
autoRefreshOnExpiration | the auto refresh on expiration |
---|
Sets the factor used to calculate buffered extent. When in ONDEMAND mode, you have a choice to fetch the features
within current extent or buffered extent. The buffered extent is calculated as:
width = extent.width * bufferFactor * 2 + 1); height = extent.height *
(bufferFactor * 2 + 1);
By default it is 1 (100%).
bufferFactor | the buffer factor |
---|
Sets the definition expression of the feature layer. Only the features that match the definition expression are displayed. A definition expression limits the features available for display and queries by applying constraints to the layer's attribute fields. Setting a definition expression is useful when the dataset is large and you don't want to bring everything to the client for analysis. This method is typically called before adding the layer to the map. If the method is called after the layer is added to the map the layer will refresh itself to reflect the new definition expression.
expression | the definition expression. |
---|
The time interval in seconds that features in the layer will expire when the layer is in ONDEMAND mode. Setting this to 0 will cause the features to not expire.
expirationInterval | interval in seconds |
---|
Sets the popup infos.
popUpInfos | the popup infos |
---|
Sets the selection symbol for the feature layer. If no symbol is specified, features are drawn using the layers's renderer.
selectionSymbol | the selection symbol |
---|
Set the current date/time range that this layer will be filtered by.
timeExtent | the new date/time range |
---|
Initializes the layer. The implementation should submit the OnStatusChangedListener.STATUS
event accordingly.
Called when ArcGISFeatureLayer updates its content very first time.
The callback method is invoked when the layer is added to map. 0 - Spatial Reference Invalid 1 - Spatial Reference NotNeeded 2 - Spatial Reference Projected 3 - Spatial Reference Good
SRStatus | an integer indicating the spatial reference status of layer |
---|