|
POST
|
Can you give me some more details please? It seems like you might be asking a different question to the one Shimin was asking. In Runtime 100, AGSGraphicsOverlays are added to the AGSMapView.graphicsOverlays collection and are always displayed over operational layers. Layers (e.g. Feature Layers) are added to the AGSMap.operationalLayers collection. There are likewise now two groups of identify methods on AGSMapView (actually, AGSGeoView since they apply to both MapView and SceneView): identifyGraphicsOverlay(s) identifyLayer(s) See them listed here. If you need to identify Graphics, use the identifyGraphicsOverlay(s) methods. If you need to identify Features, use the identifyLayer(s) methods.
... View more
04-06-2018
11:06 AM
|
0
|
0
|
1223
|
|
POST
|
If you're getting a token already and authenticating the layers via backend, to remove the watermark you still need to license your app for deployment (that is to say, licensing the runtime is distinct from authenticating for data access). To do that, follow the instructions here: License your app—ArcGIS Runtime SDK for iOS | ArcGIS for Developers That link includes a code snippet to use if not working with named users - it uses a license key. If you're deploying your app with Lite License functionality, then you can get the license key at Licensing your ArcGIS Runtime App | ArcGIS for Developers , and click the "Show my ArcGIS Runtime Lite License key" button at the top-right.
... View more
03-23-2018
08:21 AM
|
2
|
0
|
1009
|
|
POST
|
Thanks for the kind words! When you're using the TPK in your runtime app, you can override the maxScale on the tiled layer. Note that the Map also has a maxScale so you need to make sure that allows sufficient zooming. If maxScale is set appropriately, you should be able to zoom beyond the rendered scale level.
... View more
03-14-2018
12:49 PM
|
0
|
1
|
2397
|
|
POST
|
Hi Ken. Update 3 is slated for this year, yes. At present I'm afraid there is no such list, but perhaps you can post an idea about a Runtime Roadmap here and set the category as ArcGIS Runtime? Cheers, Nick
... View more
01-31-2018
12:45 PM
|
0
|
0
|
945
|
|
POST
|
Hi Ken. We don't currently support Vector Tile layers in Scenes. Draping them in a scene is on the roadmap, currently slated for Update 3 although that could change. Nick.
... View more
01-31-2018
07:47 AM
|
0
|
2
|
945
|
|
POST
|
No problem Trevor. The AGSPortalItem is very generic (it could be a map, or a CSV file, or even an Excel spreadsheet) so it doesn't expose type-specific info (think of it as a Content Management System item where ArcGIS Online or your own portal is the CMS but with geo-capabilities). The "type" property will tell you what it represents. In your case you happen to know it's a FeatureService, which is great. To find out what the sublayers are, it's a bit opaque but can be done. Take the Feature Service URL (that should be accessible via portalItem.serviceURL if the portal item has loaded) and instantiate yourself an instance of AGSGeodatabaseSyncTask. Then call loadWithCompletion() on it. In the completion handler, you'll be able to read the featureServiceInfo property, which gives rich information about the FeatureService itself. Probably more than you wanted to learn about I feel we could expose this a little better, but it's low priority as AGSGeodatabaseSyncTask is very lightweight, does the job, and most use-cases don't need it. Let me know how that goes.
... View more
01-31-2018
07:40 AM
|
1
|
1
|
807
|
|
POST
|
Sorry. I misread. Entirely my fault. You want to use an AGSArcGISMapImageLayer for a MapService endpoint. Forget the "/0" on the end, instead of the AGSFeatureServiceTable and AGSFeatureLayer, simply instantiate an AGSArcGISMapImageLayer. See this sample. That'll add the layer to the map. Nick. P.S. If you need access to the individual features and attributes, the layer's publisher will need to enable that (if it isn't already) and then there'll be a FeatureService sibling to the MapService which you can access as per my answer from yesterday.
... View more
01-31-2018
07:16 AM
|
0
|
5
|
2989
|
|
POST
|
Your URL is pointing at the service, but you should specify an individual layer URL within that service. So perhaps add "/0" to the end of the URL to make "https://arcgis.../MapServer/0" (if there are multiple layers, use the right layer index). Let me know if that's the issue. You could also call loadWithCompletion() on featureTable and check for any error in the completion block. That could give you some indication of what's going wrong. Nick.
... View more
01-30-2018
05:20 PM
|
1
|
7
|
2989
|
|
POST
|
Great stuff. Good to hear. Would you mind marking some answers as Helpful etc.? Nothing like that Esri Community Karma Thanks! Nick.
... View more
01-29-2018
07:51 AM
|
0
|
4
|
4341
|
|
POST
|
I'm betting that code is within a func. That func is being exited before the async call returns, and so "table" is being deallocated before the service responds and the block isn't being called. Try making the "table" variable a class variable instead. So something like this. class ViewController: NSViewController {
...
// Declare "table" here as a class-level variable
// table will not be deallocated just because queryTable() finished.
var table:AGSServiceFeatureTable!
func queryTable() {
// Here we set the class level variable rather than declaring
// a local variable that is deallocated when the function exits.
table = AGSServiceFeatureTable(item: portalItem, layerID: 0)
let params = AGSQueryParameters()
params.whereClause = "1=1"
// Fire off the query asynchronously... But...
table.queryFeatures(with: params, completion: { (results, error) in
guard error == nil else {
print("Error querying... \(error!.localizedDescription)")
return
}
print("Got a result")
})
// ...the code will exit this function before the query returns.
}
...
} Note that this isn't going to happen if you're reading from, say, a layer on a map in a mapview with something like (pseudocode alert) mapview.map.operationalLayers[0].featureTable because the map and layer will still be "alive" so you'll be querying against a table that isn't going to be deallocated (it's referenced by the layer which is referenced by the map which is referenced by the mapview which is referenced by the app's UI). In this case what you're seeing is because you're declaring a standalone table item that Swift will deallocate just like any other variable declared in that block.
... View more
01-28-2018
07:14 PM
|
1
|
6
|
4341
|
|
POST
|
Aha. Ok, so that property refers to what's cached locally in the feature table. You would need to set the table's featureRequestMode to Manual for that and call populateFromServiceWithParameters. But that's more advanced than you need… Instead, just call one of the query functions. If you need to know the total record count in the service, use a queryParameter with whereClause of 1=1 and call queryFeatureCountWithParameters to get the result. That's an async operation by necessity. Here are some links that could help: Layers and tables—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Loadable pattern for asynchronous resources—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Feature layer query—ArcGIS Runtime SDK for iOS | ArcGIS for Developers iOS DevLabs: Browse ArcGIS DevLabs | ArcGIS for Developers Service feature table (no cache)—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Feature layer (feature service)—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Service feature table (manual cache)—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Features and graphics—ArcGIS Runtime SDK for iOS | ArcGIS for Developers If eventually you need to work with all data locally on the device, those workflows are also supported by the Runtime, but to get started the workflows involve connecting to your hosted service and working against that.
... View more
01-28-2018
09:31 AM
|
1
|
8
|
4341
|
|
POST
|
Hi Trevor. That's Xcode being a pain. I'm sure if you just type the constructor like this it'll compile: let table = AGSServiceFeatureTable(item: portalItem, layerID: 0)
let layer = AGSFeatureLayer(featureTable: table)
One thought - can you scroll up in that autocomplete list? Perhaps Xcode is scrolling you to the second suggestion for some reason (I think I've seen that before). Alternatively, if you have other errors in the code, Xcode can get confused with what it offers for autocomplete. Xcode gets better at this with each release, in case you're not on the latest. Nick.
... View more
01-27-2018
04:39 PM
|
1
|
10
|
4341
|
|
POST
|
Hi. The short answer is that the "data" you're getting with fetchData() is the metadata describing the Portal Item (mostly the stuff you'd see if you browse to the web page for that portal item). What you are looking to do is to create an AGSServiceFeatureTable. You can do that using serviceFeatureTableWithItem:layerID() (most likely you'll use layer ID 0, but a feature service can have many layers, depending on how it was published). Then you can call queryFeaturesWithParameters:completion() to get the features and iterate over those. You'll be working with AGSQueryParameters an AGSFeatureQueryResult. If you find that not all your fields are coming back when you query, consider using queryFeaturesWithParameters:queryFeatureFields:completion:() instead, specifying that you want to Load All fields. When working with the AGSQueryParameters, a couple of things to note: If you just need all records, you should set the where clause to "1=1". It's a trick that always evaluates to true and so returns everything. But if you have a where clause in mind to filter down or are passing a geometry in to constrain the results geographically, no need to use that. If you have a lot of features in your feature service, you should use maxFeatures and resultOffset to get pages of data at a time. One last thing. If you just want to show the feature layer on a map, you can just create an ASGFeatureLayer from the AGSServiceFeatureTable and add that to a map. The Runtime will take care of querying as necessary to retrieve and display the data. Hope this helps! Nick. P.S. By the way, to post code, you can expand the editing toolbar, then select More->Syntax Highlighter.
... View more
01-25-2018
04:51 PM
|
1
|
12
|
4341
|
|
POST
|
Indeed. I've pointed the .NET team at your question. I did overhear something about whitelisting using the project manifest/settings but since it's way out of my wheelhouse I'll wait for them to pipe up. That might give you something to look into in the meantime though.
... View more
01-16-2018
09:21 AM
|
0
|
1
|
3569
|
|
POST
|
FYI: In Runtime 100, the iOS SDK moved the trustedHosts property to the AGSAuthenticationManager. But we'll get this moved over for the .NET/Xamarin folks to chip in.
... View more
01-16-2018
08:51 AM
|
0
|
3
|
3569
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 12-17-2025 10:12 AM | |
| 1 | 11-05-2025 10:52 AM | |
| 1 | 11-04-2025 08:55 AM | |
| 1 | 11-04-2025 08:38 AM | |
| 1 | 11-01-2025 03:25 PM |