|
POST
|
Hi, There are ways to do that for sure but it depends on the basemap that you're using. You could check out this post which describes adding the World Transportation Layer to your basemap and making it a Reference Layer for that basemap, which means it'll be rendered above all your own layers (in this case the AGSRasterLayer). Note that everything described in that process can be done in code in the Runtime if you're building your map that way rather than using a web map. See AGSBasemap, in particular the referenceLayers and baseLayers properties. If you're using vector tile layers, you could use the Vector Tile Style Editor to create two custom styles. One with just the roads category visible (be sure to also turn off the background), and another "opposite" style with them not visible but everything else visible. Use them both in your basemap as described above (the roads only one would be a basemap reference layer, the "opposite" one would be a basemap base layer). Note, you will want to include a lot of the Labels from various categories in the reference layer rather than the non-reference layer, or they'll appear behind the roads too which makes the map unreadable pretty rapidly. The Vector Tile Style Editor allows you to click on a label in the live preview to find it in the layers list. It's a bit fiddly but will work for what you need. See this web map for an example.
... View more
05-14-2019
03:57 PM
|
1
|
1
|
1338
|
|
POST
|
Not out of the box, but there is this Swift extension we published as part of the data-collection-ios Open Source app: https://github.com/Esri/data-collection-ios/blob/1b846d7c8f19d994a83fae259ec2cceeef19be2f/data-collection/data-collection/Extensions/Foundation/Bundle%2BVersion.swift#L18-L45 extension Bundle {
private static let agsBundle = AGSBundle()
/// An end-user printable string representation of the ArcGIS Bundle version shipped with the app.
///
/// For example, "2000"
static var sdkBundleVersion: String {
return (agsBundle?.object(forInfoDictionaryKey: "CFBundleVersion") as? String) ?? "?"
}
/// An end-user printable string representation of the ArcGIS Runtime SDK version shipped with the app.
///
/// For example, "100.0.0"
static var sdkVersion: String {
return (agsBundle?.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String) ?? "?"
}
/// Builds an end-user printable string representation of the ArcGIS Bundle shipped with the app.
///
/// For example, "ArcGIS Runtime SDK 100.0.0 (2000)"
static var ArcGISSDKVersionString: String {
return String(format: "ArcGIS Runtime SDK %@ (%@)", sdkVersion, sdkBundleVersion)
}
}
... View more
05-08-2019
04:02 AM
|
0
|
1
|
811
|
|
POST
|
Yep. This looks like a bug. Thanks for reporting it!
... View more
05-07-2019
10:05 AM
|
0
|
0
|
1955
|
|
POST
|
When you create your Feature Collection Layer from your Feature Collection, you will see a number of subLayers (a FeatureCollection can have many FeatureCollectionTables, so when you create the FCL from a FC, it actually creates one layer per geometry-enabled table). So, even if you just have the one table, you should set the renderer on the Feature Layer found in FeatureCollectionLayer.Layers and not on the FeatureCollectionLayer itself. Or simpler still, set it on the table before you add it to the FeatureCollection (which is actually what your CreateNewFeatureCollection() function does). The FeatureLayer in the Layers collection will then derive its renderer from that upon instantiation.
... View more
05-07-2019
05:15 AM
|
1
|
1
|
1728
|
|
POST
|
I wasn't involved in the design phase, but I suspect that this is down to inheriting from FeatureTable (I'm not sure if the .NET API has OMDs so here's the one from the iOS documentation😞 I further suspect that to inherit the properties of a FeatureTable without allowing the type model to accept it into the FeatureLayer constructor would involve some convoluted hierarchy and protocol designs that might not even work well in some SDKs. The solution I can think of that would solve this through typing would really ugly up that diagram. To be fair, the error you get when you do try isn't bad… System.ArgumentException: 'Invalid argument: Cannot create a feature layer from a feature collection table. Add the feature collection table to a feature collection.' …but I agree it could perhaps a little more usefully point you at the FeatureCollectionLayer as well the FeatureCollection. I'll see if we can get that updated.
... View more
05-07-2019
05:03 AM
|
0
|
0
|
3612
|
|
POST
|
Don't add the sublayers to the map's operational layers. They're already "owned" by the FeatureCollectionLayer (hence the error you're seeing - the map can't take "ownership" as they already belong to something else). Instead, just add the FeatureCollectionLayer itself. In your case, it will only have one sublayer and you'll get the result you want. In the case of the sample, simply don't add the other tables to the FeatureCollection.
... View more
05-06-2019
09:13 PM
|
0
|
0
|
3612
|
|
POST
|
You should use a Feature Collection Layer: FeatureCollectionLayer Class The layers property on it gives access to individual FeatureLayers. A Feature Collection can include multiple tables, so when you instantiate a Feature Collection Layer, you do so using a Feature Collection, which is instantiated using the FeatureCollectionTable you created. See also this sample.
... View more
05-06-2019
03:42 PM
|
2
|
4
|
3612
|
|
POST
|
Hi Manasa. You're really close. You should just need to encapsulate your snap-to-road logic within a custom AGSLocationDataSource. When the mapview is provided new locations from that data source, it'll take care of smoothing interpolating between them. I am pulling together a sample project and blog post to demonstrate this which I'll be sharing shortly.
... View more
04-26-2019
04:08 AM
|
0
|
0
|
2710
|
|
POST
|
Just to close this out, after offline discussion (thank you, Manasa) it turns out the dual inclusion was down to a bug in our Cocoaspec for 100.4. This is fixed at release 100.5. Note that the impact on app size is about 1.1Mb (the compressed size of the bundle, which is largely highly-compressible text-based localization files).
... View more
04-22-2019
01:47 PM
|
0
|
0
|
1931
|
|
POST
|
Hey Michael Davis, The output is not drawn as part of an overlay. All the rendering for the interactive GPU analysis is direct to canvas, for performance reasons, so unfortunately you won't be able to do your calculations there. Related to Distance Along Line, it won't help you here, but in Runtime 100, AGSGeometryEngine has the pointAlongPolyline:distance:() method. Incidentally, points also now cater for M and Z values so that should be a lot less painful now. Cheers, Nick.
... View more
04-22-2019
08:29 AM
|
2
|
0
|
2295
|
|
POST
|
Hi Brandon Land, I'm a little confused by your mention of "query task" in your question, having mentioned "identify task", but assuming you mean "identify"… There's no plan at present to bring it back, although we are investigating ways to improve identify for Map Image Services. In the meantime you could try a couple of things… If you create an instance of AGSArcGISMapImageLayer pointing at your service, you should be able to pass that to AGSMapView.identifyLayer...() to get the results you're after (for best results, you might want to hold on to an instance of the layer and explicitly load it ahead of time). I haven't tested this, but I don't think you even need to add it to the map view if calling one of the identify methods that explicitly specifies a layer. I believe you could furthermore modify the mapImageSublayers array to determine which layers are included in the identify (note there's a resetSublayers() method to set things back). An alternative might be to iterate over the sublayers and if there's a "table" property set and call queryFeatures() on each table of interest. I know that's not an ideal solution, but should work. Hope this helps. Nick.
... View more
04-18-2019
01:22 PM
|
0
|
0
|
715
|
|
POST
|
Hi Michael, I can't think of a direct way to do this yet (essentially you want a join between the Shapefile and a CSV), but it would help to understand the nature of your data. In particular, how is the CSV contents related to the shapefile records, and does the contents of the CSV change frequently or is it pretty static? Also, is the shapefile very large (i.e. do you want to operate directly against the shapefile, or could you work with an in-memory copy of it?). Depending on the data, one approach you could take would be to create an AGSFeatureCollectionTable from the result of a query against the shapefile using featureCollectionTableWithFeatureSet() (an AGSFeatureQueryResult is an AGSFeatureSet). Create an AGSFeatureCollectionLayer using that. In the layers collection, you'll see a single AGSFeatureLayer that you can set your renderer on. The AGSFeatureCollectionTable you create would essentially be an in-memory version of the shapefile data in which you could then edit the "KTNR" values based off the CSV contents without modifying the shapefile itself. Or if you prefer to merge/import some other field from the CSV to key your renderer off, you could populate the AGSFeatureCollectionTable slightly more manually using featureCollectionTableWithGeoElements:fields() copying the fields from the Shapefile (or a subset if you don't need them all), and add an additional field that the renderer will be keyed on, populating that from the CSV. Could you give us some more information on the nature of the CSV and how it relates to the Shapefile? Nick.
... View more
04-16-2019
01:49 PM
|
0
|
0
|
1485
|
|
POST
|
Hi. Unfortunately Runtime 10.2.x cannot render vector tiles. This was introduced with Runtime 100.0. With Runtime 100.0, you should work with VTPK files, either generated from ArcGIS Pro or by using the AGSExportVectorTilesTask.
... View more
04-16-2019
12:12 PM
|
2
|
0
|
1116
|
|
BLOG
|
Hi. The Samples app is built to work with the downloaded SDK, which you can get from here. You should open an issue here if you really need the app to use CocoaPods and you can't get it to work.
... View more
04-16-2019
08:22 AM
|
0
|
0
|
1143
|
|
POST
|
As it happens, we just wrote a blog post discussing this: Selection behavior changes in Runtime 100.5 At 10.2, you could set a selection symbol on the Graphics Layer or the Feature Layer, not the graphic itself. But yes, the behavior is changed at 100.x, for two primary reasons: performance, and consistency with the rest of the platform. Our "halo" approach works well as selection feedback for a GIS but I can see it's not necessarily the best UX for a custom location app. I'll bring it up with the team. If you're working with graphics overlays, one approach I've used in the past is to use a UniqueValueRenderer on a "highlighted" or "focused" attribute on the graphic. Rather than manipulating the graphics selection, you would set the attribute to "true" and let the renderer handle the rest. But that would get tricky once you started working with Feature Layers.
... View more
04-15-2019
08:15 AM
|
0
|
1
|
2300
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | Thursday | |
| 2 | 3 weeks ago | |
| 4 | a month ago | |
| 1 | 01-29-2026 09:39 AM | |
| 1 | 12-17-2025 10:12 AM |