|
POST
|
Note that if you're just using the AGSGraphicsOverlay's selection to track/flag certain graphics, you could set the mapView.selectionProperties.color property to UIColor.clear. However, if that's the case, I would probably keep a separate Set<AGSGraphic> variable that I used to track those graphics. Granted, you might need to do some additional logic when graphics are removed from the AGSGraphicsOverlay, and it depends on what you're trying to do, but that could be a cleaner solution.
... View more
04-10-2019
10:18 AM
|
1
|
3
|
2292
|
|
BLOG
|
The latest release of the Runtime SDK for iOS is here (see the release notes, and the general announcement over on the ArcGIS Blog), and it brings with it a slew of great new features, and some cool new internals that pave the way for even more goodness in future releases. Some highlights from the iOS perspective: We're now promoting the use of the Dynamic Framework for integrating ArcGIS Runtime SDK for iOS into your projects (and have deprecated the Static framework, which will be removed in a future release). This is Apple's preferred approach and matches what CocoaPods has been doing since Runtime 100.1. It also makes integration with the project simpler (e.g. you no longer explicitly add ArcGIS.bundle to your projects). See Configure your Xcode Project in the iOS SDK Guide. In alignment with Apple's policies and since 100.5 now requires iOS 11 or higher, support for 32-bit devices has been dropped. You shouldn't notice any change as a developer, but it means means that the SDK installer package is now much smaller to download! If you've been using custom views in an AGSCallout, the Runtime now makes use of AutoLayout to fit the view. See this release note. This is not specific to the iOS Runtime SDK, but if you work with selections in your map view, please note the new behavior we have introduced at 100.5. These changes were brought about as we prepare for significant features down the line (including Metal support). As has been mentioned before, 100.5 is the last release of the dedicated Runtime SDK for macOS. The Samples app and Toolkit have already been updated for 100.5, and the Open Source apps will be update shortly (Data Collection already has been!). We hope you enjoy the new release! Let us know what you're building with it.
... View more
04-10-2019
04:00 AM
|
1
|
4
|
1860
|
|
POST
|
You've pretty much got it, Reed Hunter I think of it this way (this is pretty loosey-goosey, but it describes things well enough): A FeatureLayer and the underlying FeatureTable are pretty tightly coupled once they've been brought to life. By brought to life, in practice I mean showing it in an AGSMapView through an AGSMap's operationalLayers (an exception may be simply loading the AGSMap with AGSLoadable which may trigger that coupling for some layers/tables to determine a spatial reference, but you'd have to be missing a basemap). Once the Map is alive, it pretty much "owns" the layer - you can't add that layer to another map at the same time (you'd have to remove it from the map's operational layers and then you should be able to use it in another AGSMap). Given that tight coupling, what you should be able to do is take a map's FeatureLayer, and call copy() on it. This should give you an instance of the feature layer that you can use in another map (this will also copy() the underlying FeatureTable so you don't break that tight coupling). It'll point at the same source data, but will be an entirely separate layer unbeholden to the "owning" map of the original layer (since the copy won't be in any operationalLayers collection). e.g. let mySafeToUseFeatureLayer = featureLayerAlreadyInAMap.copy() as! AGSFeatureLayer Safest way, to avoid these races as maps are brought to life and claim layers, would be to cherry pick the layers you want from the various maps in various MMPKs, and copy() them to add to your own map that you're compiling. Just be aware that if you're doing this with multiple visible map views at once, you may end up hitting that single underlying geodatabase data table at the same time for both map views if you're navigating them both at the same time. Should work just fine, but you might notice some performance drops as data is read. I should stress that this is not something I have delved into myself. And map projection should work pretty well. The projection engine is fast and flexible, but it is an additional performance hit if every geometry has to be projected.
... View more
03-27-2019
03:41 PM
|
0
|
0
|
3723
|
|
POST
|
An MMPK is a container for Maps. Each AGSMapView can display one Map at a time. You can open a TPK and add it to a map. If you need to show a different map in a map view, simply replace the AGSMapView.map property with the other AGSMap.
... View more
03-27-2019
03:08 PM
|
0
|
0
|
3723
|
|
POST
|
It looks like you took the authentication code from the OAuth 2 DevLab. It's hard to know where things went wrong, but I would like to dig a little deeper in case we can improve things. I know you moved on from the point where things weren't working, but if you are able to DM me an Xcode project that shows this behavior, I'd be happy to take a look. Let me know.
... View more
03-19-2019
07:36 PM
|
0
|
0
|
890
|
|
POST
|
It sounds like it. Assuming you used the Maps App as your starting point, did you follow the steps in "Register an Application" and "Configure the project"? I'm intrigued as to precisely what went wrong so that I can see if we can do better with the instructions and the error messages.
... View more
03-19-2019
08:28 AM
|
0
|
2
|
2364
|
|
POST
|
Hi Manasa. By default, the polyline will be turned into AGSLocations, with one for each point in the source polyline. Remember that if you densify a polyline, you will get the original points plus any densification results, so they might be less than maxSegmentLength apart. Once you have called AGSSimulatedLocationDataSource.setLocationsWithPolyline, the AGSSimulatedLocationDataSource.locations array will be populated with AGSLocations. These locations will be provided to the AGSLocationDisplay at 1 location per second. Each location in the locations array will initially have a velocity of -1 and a course of -1. You can modify the velocities and courses to a value >= 0 if need be. The AGSSimulatedLocationDataSource will emit a location every second. If it finds a velocity < 0, it will use 1 meter per second. If it finds a course < 0, it will calculate heading based off the direction from the previous location to the current location. For the GPX data, it looks like we ignore the timestamps on the GPX source points, and emit one location every second regardless of the timing of the original data points. That probably explains why it looks like it's running too fast.
... View more
03-18-2019
10:29 AM
|
0
|
0
|
2692
|
|
POST
|
Hi Samer Abraham. Were you able to make any progress? Was it the type of account that you were using?
... View more
03-13-2019
07:58 AM
|
0
|
4
|
2364
|
|
POST
|
I meant that you should call mapView.LocationToScreen, not write your own function. Something like… double longitude = 100.458802; //reference starting point
double latitude = 5.997545;
location = new MapPoint(longitude,latitude, SpatialReferences.Wgs84);
screenPoint = mapView.LocationToScreen(location);
Perhaps I misunderstood your question.
... View more
03-06-2019
09:34 AM
|
0
|
1
|
4530
|
|
POST
|
Hi Mohamad Fathin, Does this help? MapView.LocationToScreen Method Pass in any MapPoint and you get a screen position relative to the top-left corner of the MapView control. Nick.
... View more
03-05-2019
05:34 AM
|
0
|
3
|
4530
|
|
POST
|
I think that was my original reply above, which I edited to be more explicit/correct.
... View more
03-02-2019
05:56 AM
|
0
|
0
|
890
|
|
POST
|
Comment out the line AGSAuthenticationManager.shared().oAuthConfigurations.add(config). Then when you call routeTask.defaultRouteParameters you should be prompted with an alert box for your credentials instead. If you enter your credentials (it should be a free developer account or an ArcGIS Online organizational account, not a personal account), you'll be fine. I think there may be one of two things going on: 1. You're using a personal Esri account OR 2. There's an issue with how your app's OAuth configuration is being defined. But if you're entering your credentials through the OAuth page and control returns to your app, that doesn't seem likely to be the case. If it turns out to be 1) above, yes, I agree, that error message is not good and we'll have to improve that. Let me know if this helps.
... View more
03-02-2019
05:55 AM
|
0
|
0
|
2364
|
|
POST
|
That's the right URL. Should just work (I can't reproduce it here). Is your routeTask going out of scope for some reason? And which version of the Runtime SDK are you using?
... View more
02-27-2019
05:54 PM
|
0
|
1
|
2364
|
|
POST
|
Thanks for the follow-up, Worth Sparks. This is helpful info. Glad you've got a workaround. We'll take a look internally though.
... View more
02-27-2019
12:07 PM
|
1
|
1
|
3385
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | Thursday | |
| 2 | 3 weeks ago | |
| 4 | 4 weeks ago | |
| 1 | 01-29-2026 09:39 AM | |
| 1 | 12-17-2025 10:12 AM |