ArcGIS Runtime SDK for iOS
100.15
|
A shapefile dataset containing geographic features or non-spatial records.
Instances of this class respresent a Shapefile dataset that could include either geographic features. You can query the dataset using attribute or spatial criteria, and if permitted, also edit the data. You can display the geographic features on a map using AGSFeatureLayer
.
A shapefile dataset consists of at least three files (.shp, .shx, .dbf), and may include many others. Each of the component files of a shapefile must be smaller than 2 GB. If the minimum required files are not present (or larger than 2 GB), the table will fail to load. If the file permissions are read-only, features cannot be edited. On-the-fly projection of a shapefile is only supported if an associated .prj file is present. Otherwise, the features are assumed to have the same spatial reference as the map. A default renderer is used to render a shapefile feature table in a feature layer. In most cases, the default should be replaced with a custom renderer.
Class Methods | |
(instancetype) | + shapefileFeatureTableWithFileURL: |
(instancetype) | + shapefileFeatureTableWithName: |
Properties | |
BOOL | canAddFeature |
BOOL | canEditGeometry |
NSString * | displayName |
BOOL | editable |
AGSEnvelope * | extent |
AGSFeatureLayer * | featureLayer |
NSArray< AGSField * > * | fields |
NSURL * | fileURL |
AGSGeometryType | geometryType |
BOOL | hasGeometry |
BOOL | hasM |
BOOL | hasZ |
AGSLayer * | layer |
NSError * | loadError |
AGSLoadStatus | loadStatus |
NSInteger | numberOfFeatures |
AGSPopupDefinition * | popupDefinition |
BOOL | popupEnabled |
AGSShapefileInfo * | shapefileInfo |
BOOL | spatialIndexEnabled |
AGSSpatialReference * | spatialReference |
NSString * | tableName |
|
requiredinherited |
Cancels loading if it is in progress, otherwise it does nothing. This should be called carefully because other objects could be waiting for loadWithCompletion:
or retryLoadWithCompletion:
to complete and this will call them all back with the error of NSUserCancelledError
- (BOOL) canDeleteFeature: | (AGSFeature *) | feature |
Indicates whether the source allows this particular feature to be deleted. The method first checks to verify if the source is capable of deleting any features in general. It also checks specific ownership-based access control policies of the source to see if the user attempting to perform the operation has persmissions to delete this particular feature.
feature | Can be nil, in which case, this method only checks if the source is capable of deleting any features in general |
- (BOOL) canUpdateFeature: | (AGSFeature *) | feature |
Indicates whether the source allows updating this particular feature. The method first checks to verify if the source is capable of updating any features in general. It also checks specific ownership-based access control policies of the source to see if the user attempting to perform the operation has persmissions to edit this patricular feature.
feature | Can be nil, in which case, this method only checks if the source is capable of updating any features in general |
- (void) close |
Close connection to the shapefile on disk. All use of this instance should cease before closing it. For example: remove feature layers from maps, and release feature tables. Any attempt to access this instance after it is closed will fail, resulting in an error. After closing the connection, the shapefile file can be deleted.
- (AGSFeature *) createFeature |
Create a new, empty feature. Note, the new feature is only available in memory at this point, it is not committed to the dataset.
addFeature:completion:
- (AGSFeature *) createFeatureWithAttributes: | (NSDictionary< NSString *, id > *) | attributes | |
geometry: | (nullable AGSGeometry *) | geometry | |
Create a new feature with the provided attribute values and, optionally, geometry. Note, the new feature is only available in memory at this point, it is not committed to the dataset.
attributes | for the feature |
geometry | for the feature |
addFeature:completion:
- (void) doCancelLoading |
Never call this method directly. The framework calls this method on a background thread when cancelLoad (AGSLoadable-p)
is called. It is meant to be overriden by subclasses. Subclasses should override this method to cancel loading their data and call loadDidFinishWithError: (AGSLoadableBase(ForSubclassEyesOnly))
at the end passing in an error representing NSUserCancelledError
.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
- (void) doStartLoading: | (BOOL) | retrying |
Never call this method directly. The framework calls this method on a background thread when loadWithCompletion: (AGSLoadable-p)
or retryLoadWithCompletion: (AGSLoadable-p)
is called. It is meant to be overriden by subclasses. Subclasses should override this method to load their data and call loadDidFinishWithError: (AGSLoadableBase(ForSubclassEyesOnly))
upon completion, passing in the error if any.
retrying | flag that is true if this method was called from retryLoadWithCompletion: (AGSLoadable-p) . |
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
- (nullable AGSField *) fieldForName: | (NSString *) | fieldName |
Convenience method to getting a field object given its name
fieldName | The name of the field. |
- (void) loadDidFinishWithError: | (nullable NSError *) | error |
Only subclasses should call this method in doStartLoading: (AGSLoadableBase(ForSubclassEyesOnly))
and doCancelLoading (AGSLoadableBase(ForSubclassEyesOnly))
when done loading or failed to load.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
|
requiredinherited |
Loads data for the object asynchronously. The completion block is invoked upon completion.
You can call this method any number of times, however only one attempt is made to load the data. If it is already loading, it will just continue to load (i.e. not force a reload). If it has already loaded successfully, the completion block will be invoked right away. If it has already failed to load, the completion block will be invoked right away with error previously encountered. This method supports multiple callers and will call them all back on completion. However, each caller's completion block will be invoked once and only once.
completion | block that is invoked when object loads successfully or fails to load. An error is passed to the block if the object fails to load. |
- cancelLoad
to cancel loading - retryLoadWithCompletion:
to force reload - (void) onLoadStatusChanged |
Never call this method directly. The framework calls this method on a background thread when AGSLoadable::loadStatus
changes is called. Subclasses can optionally implement this to know when their loading status has changed.
Provided by category AGSLoadableBase(ForSubclassEyesOnly).
- (id<AGSCancelable>) queryExtentWithParameters: | (AGSQueryParameters *) | parameters | |
completion: | (void(^)(AGSEnvelope *__nullable extent, NSError *__nullable error)) | completion | |
Query the dataset to find the geographic extent covering matched features or records.
parameters | representing the query criteria |
completion | The block that is called when the query is complete |
AGSFeatureServiceSessionType
- (id<AGSCancelable>) queryFeatureCountWithParameters: | (AGSQueryParameters *) | parameters | |
completion: | (void(^)(NSInteger count, NSError *__nullable error)) | completion | |
Query the dataset to find the number of matched features or records.
parameters | representing the query criteria |
completion | The block that is called when the query is complete |
AGSFeatureServiceSessionType
- (id<AGSCancelable>) queryFeaturesWithParameters: | (AGSQueryParameters *) | parameters | |
completion: | (nullable void(^)(AGSFeatureQueryResult *__nullable result, NSError *__nullable error)) | completion | |
Query the dataset to find specific features or records.
parameters | representing the query criteria |
completion | The block that is called when the query is complete |
AGSFeatureServiceSessionType
- (id<AGSCancelable>) queryStatisticsWithParameters: | (AGSStatisticsQueryParameters *) | parameters | |
completion: | (void(^)(AGSStatisticsQueryResult *__nullable result, NSError *__nullable error)) | completion | |
Query the dataset to compute statistics on matched features or records.
parameters | representing the query criteria |
completion | The block that is called when the query is complete |
AGSFeatureServiceSessionType
|
requiredinherited |
Tries to reload when an object has failed to load. This method should be called judiciously. It should be called when:
cancelLoad
and then this methodIf the data hasn't started loading, it will start loading. If it is already loading, it will just continue to load. If it has already loaded successfully, calls back right away. If it has already failed to load, tries again. This method supports multiple callers and will call them all back on completion. However, each caller's completion block will be invoked once and only once.
completion | block that is invoked when object loads successfully or fails to load. An error is passed to the block if the object fails to load. |
|
readnonatomicassigninherited |
Indicates whether the source supports adding new features.
|
readnonatomicassigninherited |
Indicates whether the source supports updating geometry of existing features.
|
readwritenonatomiccopyinherited |
User-friendly name that can be displayed in the UI (for example in a Table of Contents)
|
readnonatomicassigninherited |
Indicates whether the dataset can be edited. For details on which fine-grained editing capabilites are supported, refer to canUpdateFeature:
and canDeleteFeature:
|
readnonatomicstronginherited |
The extent of the dataset.
|
readnonatomicweakinherited |
The feature layer this table is associated with, or created from, if any. nil
if this table is not associated with a feature layer. This property is populated when the AGSFeatureLayer
is created from the AGSFeatureTable
.
AGSFeatureTable::layer
instead Provided by category AGSFeatureTable(AGSDeprecated).
|
readnonatomiccopyinherited |
|
readnonatomicstrong |
Path to the shapefile dataset on disk.
|
readnonatomicassigninherited |
The type of geometry used by geographic feautres. Only applicable if hasGeometry
is true.
|
readnonatomicassigninherited |
Indicates whether the dataset contains a geometry field (column). If YES, the dataset contains geographic features. If NO, the dataset contains non-spatial records, similar to a database table.
|
readnonatomicassigninherited |
Indicates whether features may contain M values
|
readnonatomicassigninherited |
Indicates whether features may contain Z values
|
readnonatomicweakinherited |
The layer this table is associated with, or created from, if any. This can be an AGSAnnotationLayer
, an AGSDimensionLayer
, an AGSFeatureLayer
, or nil
if this table is not associated with a layer. This property is populated when the layer is created from the AGSFeatureTable
.
|
readnonatomicstronginherited |
The error that was encountered during the most recent load operation. Will be nil if the operation succeeded.
|
readrequirednonatomicassigninherited |
Status of the load operation.
|
readnonatomicassigninherited |
The total number of features or records in the dataset.
|
readwritenonatomicstronginherited |
The AGSPopupDefinition
associated with the popup source. This property will be nil
if an error occurs or if the popup source is not associated with a popup definition.
|
readwriterequirednonatomicassigninherited |
Indicates whether popups are enabled on this source.
|
readnonatomicstrong |
Metadata of the shapefile dataset. Only available if the shapefile dataset contains a .xml file.
|
readnonatomicassign |
Indicates whether or not the shapefile uses spatial indexes.
ArcGIS for Desktop can be used to create spatial indexes for shapefiles, stored in .sbn and .sbx files. Having a current spatial index ensures that a high level of performance is maintained when drawing and working with the shapefile's features and that the shapefile's extent is accurate.
|
readnonatomicstronginherited |
The spatial reference of the dataset.
|
readnonatomiccopyinherited |
Name of the dataset.