POST
|
Hello, You can use `AGSGeometryEngine`'s distanceBetweenGeometry1:geometry2:() for simple planar distance between two points OR geodeticDistanceBetweenPoint1:point2:distanceUnit:azimuthUnit:curveType:() to get the geodetic distance. Hope this helps Suganya
... View more
04-23-2018
07:16 AM
|
2
|
1
|
707
|
POST
|
When we query for features, by default, only the minimum required attributes required to render it are fetched. The feature is said to be in an "unloaded" state. This behavior is because a service could have any number of fields (hundreds if not thousands), and all these fields are not necessary for rendering the feature on the map or selecting it. So in order to get all the fields, we need to "load" the feature. Option 1: You can add the following to the sample code to load the features self.featureLayer.selectFeatures(withQuery: queryParams, mode: AGSSelectionMode.new) { (queryResult:AGSFeatureQueryResult?, error:Error?) -> Void in
if let error = error {
print(error)
}
if let result = queryResult {
let featureEnumerator = result.featureEnumerator()
while featureEnumerator.hasNextObject() {
let feature = result.featureEnumerator().nextObject() as! AGSArcGISFeature
feature.load(completion: { (featureLoadError) in
print("feature attributes \(feature.attributes)") //this would print all attributes defined.
})
}
}
}
Option 2: Alternatively, there is a query method on the `AGSServiceFeatureTable` that can return loaded features (by specifying `queryFeatureFields` param to `.loadAll`. You can then select the features as below: self.featureTable = self.featureLayer.featureTable as! AGSServiceFeatureTable
self.featureTable.queryFeatures(with: queryParams, queryFeatureFields: .loadAll) { (queryResult:AGSFeatureQueryResult?, error:Error?) in
if let result = queryResult {
//All features are already loaded here
print("\(result.featureEnumerator().allObjects.count) feature(s) selected")
print(result.featureEnumerator().nextObject()?.attributes) //contains all attributes
//Now select the features
self.featureLayer.select(result.featureEnumerator().allObjects)
}
} More on "loadable" pattern can be found here Thanks, Suganya
... View more
12-04-2017
10:01 AM
|
0
|
1
|
602
|
POST
|
Do you mean when you do a sync? If that's the case, by default sync operation is performed for only the changes.
... View more
06-20-2017
10:30 AM
|
0
|
3
|
833
|
POST
|
The property is currently not available, but will be very shortly in the upcoming V100.1 release. I've corrected my original comment.
... View more
06-16-2017
12:30 PM
|
0
|
0
|
517
|
POST
|
I misspoke. The capability to set or define spatial reference is not present in V100.0. You will be able to do that in a future release. Apologies for the inconvenience. Suganya
... View more
06-16-2017
11:03 AM
|
0
|
1
|
1098
|
POST
|
Since the map image layer is comprised of one or more sublayers, you can loop through the sublayers and set it on the definitionExpression property there. Update: 'definitionExpression' is currently not available but will be available on AGSArcGISMapImageSublayer class in the upcoming v100.1 release.
... View more
06-16-2017
10:08 AM
|
0
|
2
|
517
|
POST
|
DefinitionExpression property on ArcGISMapImageSublayer class will be available very shortly in an upcoming release v100.1 Suganya
... View more
06-16-2017
10:06 AM
|
0
|
0
|
432
|
POST
|
You'll have to loop through the tables in your geodatabase and use updatedFeaturesWithCompletion: method available on AGSGeodatabaseFeatureTable class. Alternatively, you can also just get the number of updates using updatedFeaturesCountWithCompletion: method. Suganya
... View more
06-16-2017
09:50 AM
|
1
|
5
|
833
|
POST
|
You can only find the last modified date of a feature. A feature layer in a client app need not have all features (there can be other features in the server) so we can’t calculate LastModifiedDate for the whole feature layer without performance penalties. Suganya
... View more
06-16-2017
09:45 AM
|
0
|
0
|
426
|
POST
|
Thanks for reporting. Does it crash with just the one geodatabase? Could you try running the sample service here and see if that works? That should help us narrow down the issue. Can you also provide the stack trace from the crash? That could give us more details as to why it crashed. You can get it by typing "bt" in the console after the crash.
... View more
03-06-2017
08:30 AM
|
0
|
0
|
491
|
POST
|
Hello, In v100.0, authentication is managed for you by default, and that's why you see the prompt. For more info, check out the Authentication Manager reference If you have username & password, you can still set credentials programmatically on the Route Task self.routeTask = AGSRouteTask(url: NSURL(string: "http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World")! as URL)
self.routeTask.credential = AGSCredential(username:"",password:"") Hope this helps. Let us know if you see other issues. Thanks. Suganya
... View more
03-03-2017
07:51 AM
|
0
|
0
|
362
|
POST
|
Hello, `credential` is still present in many of the secured resources classes. Quartz also has a default authentication handler that would prompt you for credentials even if you don't set 'credential' property. What is the type of service/layer you are trying to access? Can you please post your code? We'd be able to help better. Thanks.
... View more
03-02-2017
06:59 AM
|
0
|
0
|
302
|
POST
|
Yes you can do that with ExportTileCacheTask I mentioned in the first comment though the users would have to wait until the download is complete before they can interact with the tiles. Take a look at the sample, instead of getting the user defined area, you could include levels of details directly in the code.
... View more
01-26-2017
04:23 PM
|
1
|
2
|
817
|
POST
|
You need ArcGIS Pro or ArcMap or Runtime to create a tpk. Of course if you already have a tpk file, you can just consume it in your Runtime app. If you want the app to start with the downloaded tpk file, there are a couple of options - Use ArcMap or Pro to create tpk file. In your iOS app, use AGSTileCache class to load this file. You would then create an instance of AGSArcGISTiledLayer which can then be displayed as a base map. - Create a mobile map package in Pro which can bundle base maps into a .mmpk file. (A mobile map package can also include operational data, geocoders and network datasets in addition to base layers) Check out this sample on how to use mobile map package in your iOS app.
... View more
01-26-2017
11:11 AM
|
1
|
4
|
817
|
POST
|
You can use the SDK's `AGSExportTileCacheTask` to generate tile package. Check out this sample. Set AGSExportTileCacheParameters.levelIDs to include all the Levels of Details your cached map service supports. This should allow you to zoom to any level in a disconnected environment. Note that the server could restrict the maximum number of tiles you can download. You are also encouraged to estimate the size of such a download before actually doing so. This can be done using estimateTileCacheSizeJobWithParameters(..) method on AGSExportTileCacheTask. Alternatively, if you would be using the same tile package in many devices, you can also use ArcMap or Pro to author the tpk and side load them to the devices.
... View more
01-26-2017
10:44 AM
|
1
|
6
|
817
|
Title | Kudos | Posted |
---|---|---|
1 | 01-08-2019 03:59 PM | |
1 | 08-04-2015 12:58 PM | |
1 | 06-16-2017 09:50 AM | |
1 | 11-28-2016 10:01 AM | |
1 | 01-25-2019 01:00 PM |
Online Status |
Offline
|
Date Last Visited |
06-05-2023
05:23 PM
|