|
POST
|
Hi Steve. Can you share some more about how you're presenting and using the AGSPopupsViewController? A repro case would be really helpful. We have seen the Done button disappear in the simulator, which appeared to be a simulator bug. If you rotate the simulator (command + right or left cursor) then the button reappeared. But we've never seen that on a device. Cheers, Nick.
... View more
06-12-2019
07:35 AM
|
0
|
3
|
1290
|
|
POST
|
Hi. Yes, that's correct. Behind the scenes, AGSGenerateOfflineMapJob will do the work you previously had to do manually in collecting the various layers together and setting a map up to use them. You can still use the old method if you like, but the GenerateOfflineMapJob is much simpler and takes care of a lot of the hard work. Generally you can use this unless you have very specific needs for taking your data offline, in which case you can lean on the older per-service based approach. See this video from the 2019 DevSummit for more details: ArcGIS Runtime: Working with Maps Online and Offline Note that there's also the Preplanned workflow which may be suitable, depending on your use cases. It's also discussed in the above video. Both AGSGenerateOfflineMapJob and AGSDownloadPreplannedOfflineMapJob are created using the AGSOfflineMapTask). Hope this helps, Nick.
... View more
06-11-2019
10:35 AM
|
0
|
0
|
620
|
|
POST
|
Could you provide sample code and data? Do you have an image of what you expect it to look like? Thanks! Nick
... View more
06-11-2019
09:09 AM
|
0
|
0
|
841
|
|
POST
|
If the value is < 0, add 360. -179 becomes 181. -10 becomes 350, etc.
... View more
06-11-2019
06:01 AM
|
0
|
0
|
7248
|
|
POST
|
License Key vs Named User You are correct. If you don't want your app's user to need an ArcGIS Online or on-premise named user account, then you will need a Runtime License. A single license key is valid for a single user on a single device. License keys are sold in packs. Basic vs Standard It depends on what your workflow is. Basic: If you are using one of the in-built workflows for editing, taking the data offline and synchronizing using ArcGIS feature services with either the OfflineMapTask or the GenerateGeodatabaseTask (which make use of mobile geodatabases), then the Basic License will suffice. It does include editing capabilities. If this is what you were referring to in your original question, Basic is the right license for you. Standard: If you are building your own editing workflow that relies on something called a "File Geodatabase", perhaps generated by ArcGIS Desktop, then you will need to do a fair bit of work as we don't currently provide workflows for this. And at that point, to access the File Geodatabase, you would need Standard. Note also that if you are just editing data stored in a completely public ArcGIS feature service (i.e. anyone can edit the data with no authentication required), you only need Lite, but that is such a rare use case, it's seldom mentioned. JS API from the Web The Lite/Basic/Standard/Advanced Licenses are Runtime specific. For the web, you should use Named Users.
... View more
06-05-2019
04:01 AM
|
0
|
1
|
1836
|
|
POST
|
Ah. It looks like you're interacting with the map view. When you do that, the autoPan mode is reset to .off. You could use the autoPanModeChangeHandler to detect when that happens and either enable a button in your UI (remember to dispatch to main, since the handler could be invoked on any thread), or you could switch the autoPan mode back again (perhaps after a delay). You'll need to think what you want your UX to be. locationDisplay.autoPanModeChangedHandler = { [weak self] newMode in
if newMode == .off {
DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
self?.mapView.locationDisplay.autoPanMode = .navigation
})
}
}
Or you could just set the interactionOptions appropriately: mapView.interactionOptions.isPanEnabled = false
mapView.interactionOptions.isRotateEnabled = false Again, which option you pick depends on the UX you want for your app. Hope that helps.
... View more
06-04-2019
11:27 AM
|
0
|
0
|
1877
|
|
POST
|
Hmm. Which queue were you starting the location display from? For most scenarios you'd have to explicitly move off the main queue yourself. I just wonder if it's the dispatch_async that's the solution here rather than dispatching to the main queue. My hunch is that dispatch_async is incidental to the real cause (essentially under certain conditions if the location display is started too soon while the map is readied, the logic for tracking movement got stuck which affected auto-pan). This should be fixed in 100.6. I also just noticed that in your code above your app will have two CLLocationManagers running. One is owned and managed by the mapView.locationDisplay and one is owned and managed by your app. Is there a reason for that?
... View more
06-03-2019
02:17 PM
|
0
|
2
|
3313
|
|
POST
|
This guide documentation should help: Edit features—ArcGIS Runtime SDK for Android | ArcGIS for Developers In short, you create a feature using the table, set the attributes and geometry, and then add it to the table. Working with offline geodatabases, that is all you need to do. If you are working with a ServiceFeatureTable connected directly to a service, you will also need to call applyEdits.
... View more
05-29-2019
09:31 AM
|
1
|
5
|
2254
|
|
POST
|
For editing the local geodatabase (i.e. offline editing) you will need the Basic level Runtime license or above (the ability to edit offline and sync back is one of the primary differences between Basic and Lite level Runtime licensing). You can license at Basic level by: Logging in to ArcGIS Online (or on-premise portal) as a named user of type Editor, Field Worker, Creator, or GIS Professional (or if using an older on-premise portal, a Level 2 named user). See here for more info on the user type, and here for how to license. Buying a Runtime Basic License Pack from your local distributor. Using the license pack means your application user does not have to have an ArcGIS Online subscription. See here for how to use a key from a license pack. Note that you can use a Developer subscription but you will only be able to edit your own data (developer accounts cannot access private data that is shared from other accounts).
... View more
05-29-2019
09:19 AM
|
1
|
3
|
1836
|
|
POST
|
Hi Mohamad Fathin, You could set them up something like this: private readonly LinearUnit _metersUnit = LinearUnits.Meters;
private readonly AngularUnit _degreesUnit = AngularUnits.Degrees; or just call DistanceGeodetic like this: GeodeticDistanceResult distance = GeometryEngine.DistanceGeodetic(mapPoint1, mapPoint2, LinearUnits.Meters, AngularUnits.Degrees, GeodeticCurveType.Geodesic); See LinearUnits and AngularUnits. Hope that helps! Nick.
... View more
05-29-2019
04:48 AM
|
0
|
4
|
7248
|
|
POST
|
Hey Worth, To help us narrow this down… Could you print the entire Error you get back (beyond just the localizedDescription). The additionalMessage might give us some more insight. Could you confirm that all the basemaps you're talking about above are raster? Or is "Streets" the vector tile basemap? What about Topographic? Remember the Topographic Vector with relief actually uses a raster hillshade for the relief. Ignoring the test web app, we wonder if you're OK with vector tiles (Streets) but hitting raster limits with the other two. You could set AGSRequestConfiguration.global().debugLogRequests and debugLogResponses to true and let me know what you get for the request that's sent out. You could try the AGSExportTileCacheTask.estimateTileCacheSizeJobWithParameters() and execute that job from your app to see if it matches the web app and gives sensible values in the EstimateTileCacheResult. Feel free to DM me with info if you like. Cheers, Nick. P.S. I also noticed that the TPK Estimator might be failing at its task (technically it's a TPK creator, but the web page has the wrong title )… For a (client-side-calculated) estimate of 7,580 tiles, the service actually came back with 16,093. I will have to look into that. As I mentioned, the estimator is oooooooooold, and it's quite possible that stuff has changed without me noticing and updating it.
... View more
05-29-2019
04:35 AM
|
0
|
0
|
1775
|
|
POST
|
Hey Worth Sparks. We believe we have identified the problem and have a fix. Will be included in 100.6.
... View more
05-28-2019
02:08 PM
|
1
|
0
|
3410
|
|
POST
|
Hi Jorge, In general, Identify is meant to provide feedback to user interaction, so works on visible layers in the map. So, if a layer is in the map and has identify capabilities (as defined on the service), it will be included in the IdentifyLayers operation. You could discard the results for that specific layer from the identifyLayersAsync call (you get an array of IdentifyLayerResult objects back, each of which represents a layer), or you could identify only a subset of layers by calling identifyLayerAsync on each. If you change the visibility, the user might notice that in the map view (but you might get away with it). Note that changing the layer opacity does not affect identify. Hope that helps. Nick.
... View more
05-28-2019
11:10 AM
|
1
|
1
|
885
|
|
POST
|
Hi Worth Sparks, For standard raster tiled basemaps, the OfflineMapTask will map those services appropriately (i.e. if your map uses Streets, the OfflineMapTask will use Streets for Export). The standard basemaps don't even allow for export (scroll down and compare the Supported Operations here (Standard) and here (For Export)). Those tile counts are well within the 150,000 maxExportTilesCount for Streets and Imagery (I haven't checked Topo). IMO it should just work. Based off status.arcgis.com and the date of your post, perhaps you were just bumping into the problems ArcGIS Online was having that day… Are you still having issues? Let me know. If so I can check with the ArcGIS Online team and see what they have to say. Nick P.S. When you're using Vector Tiles, the difference between the Standard and For Export versions is actually in the styles (fewer fonts for export). Both can be exported, so the OfflineMapTask does not map the services as it does for the raster basemaps.
... View more
05-26-2019
02:03 PM
|
0
|
2
|
1775
|
|
POST
|
Hi Reed, This may be a bug in 100.5 which we've fixed for 100.6. I'll check with the team in case there's a specific workaround we can use, but in the meantime are you able to move the AGSMapView.LocationDisplay.start to happen once the AGSMap is loaded? From what I understand, that should work, but I'll be able to check more specifically in a couple of days. Let me know whether that helps. Nick.
... View more
05-26-2019
01:34 PM
|
0
|
1
|
3313
|
| 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 |