POST
|
You can use this Featurelayer method to set the visibility 10.2.5: AGSLayer Class Reference Feel free to mark this question as answered.
... View more
11-17-2016
01:34 PM
|
1
|
0
|
554
|
POST
|
Hi Muhammad, I think the issue is the order of layer when you add into the mapview. Maps and layers—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Here I shared with you a sample code to show how to make it works with two toggles, one control basemap layer, and the other control featurelayer. The key part is you should use insertMapLayer:atIndex: method rather than just simply addLayer. You want to always make sure the basemap is always atIndex 0, which means the first layer add to the mapview, then all the featurelayer later can stack on top of it. @IBOutlet weak var mapView: AGSMapView!
@IBOutlet weak var basemapSwitch: UISwitch!
@IBOutlet weak var featureLayerSwitch: UISwitch!
let featureLayer1 = AGSFeatureLayer(URL: NSURL(string: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Recreation/FeatureServer/0"), mode: .OnDemand)
let featureLayer2 = AGSFeatureLayer(URL: NSURL(string: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Wildfire/FeatureServer/0"), mode: .OnDemand)
let worldTopoBasemap = AGSTiledMapServiceLayer(URL: NSURL(string: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"))
let worldImageryBasemap = AGSTiledMapServiceLayer(URL: NSURL(string: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"))
override func viewDidLoad() {
super.viewDidLoad()
// set the delegate for the map view
self.mapView.layerDelegate = self
self.basemapSwitch.setOn(false, animated: false)
self.featureLayerSwitch.setOn(false, animated: false)
//Add it to the map view by default with one basemap and layer
self.mapView.addMapLayer(worldTopoBasemap, withName: "Tiled Layer")
self.mapView.addMapLayer(featureLayer1, withName: "featureLayer1")
}
@IBAction func switchBasemapToggle(sender: UISwitch) {
if basemapSwitch.on {
print("SwitchBasemap toggle is on")
self.mapView.removeMapLayer(worldTopoBasemap)
self.mapView.insertMapLayer(worldImageryBasemap, atIndex: 0)
} else {
print("SwitchBasemap toggle is off")
print(self.mapView.mapLayers.count)
self.mapView.removeMapLayer(worldImageryBasemap)
self.mapView.insertMapLayer(worldTopoBasemap, atIndex: 0)
}
}
@IBAction func switchFeatureLayerToggle(sender: UISwitch) {
if featureLayerSwitch.on {
print("featureLayerSwitch toggle is on")
self.mapView.removeMapLayer(featureLayer1)
self.mapView.insertMapLayer(featureLayer2, atIndex: 1)
} else {
print("featureLayerSwitch toggle is off")
print(self.mapView.mapLayers.count)
self.mapView.removeMapLayer(featureLayer2)
self.mapView.insertMapLayer(featureLayer1, atIndex: 1)
}
} And here is a demo gif: Hope this can help.
... View more
11-16-2016
02:53 PM
|
1
|
2
|
554
|
POST
|
Hi Rami, This is the bug that logged internally [BUG-000100541 AGSArcGISMapImageLayer exportImage request not correct for ImageServer] At this moment, I am not sure when our dev team going to fix this issue. But this issue has been reported.
... View more
11-16-2016
10:19 AM
|
0
|
0
|
725
|
POST
|
From code perspective, I think this can be done as along as you pass the right path of the tpk. Try to download this sample shows how to access tpk file using path: Dropbox - LocalTiledLayer-Swift.zip Also, try this two line of code to load a file from your Documents directory, for example: let path = "/Users/goldenlimit/Documents/iOS/Case/LocalTiledLayer-Swift/"
let tpkpath = (path as NSString).stringByAppendingPathComponent("SanFrancisco.tpk")
... View more
11-14-2016
03:19 PM
|
0
|
0
|
439
|
POST
|
Hi Terrettaz, I find this userHeaders method is available in 10.2.5 (current version of SDK) 10.2.5: AGSRequestOperation Class Reference Maybe you can try to use this.
... View more
11-08-2016
10:01 AM
|
0
|
0
|
883
|
POST
|
Hi Neil, Unfortunately, based on the current version of Runtime iOS SDK 10.2.5, the label will not show up in webmap. And this issue is reproducible in Quartz. We have already logged an enhancement request for the Quartz Runtime: [ENH-000092338 AGSMap doesn't display label of the web map in ArcGIS Online] in our Early Adopt Community: https://earlyadopter.esri.com/project/feedback/view.html?cap=59D261350FB84BE48C01CF04BF2A3AA1&uf=E4E032C3643E4281BFFE9A7…
... View more
11-07-2016
05:10 PM
|
0
|
0
|
230
|
POST
|
Hi Rami, Thanks for your update. After I tested with a dynamic ImageServer and I can reproduce the issue. When using the AGSArcGISMapImageLayer to load a dynamic ImageServer, we can't see the layer renderer on the map view. Using Fiddler to capture the request, we found this 400 error request: http://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/export?bboxSR=5070&dpi=288&bbox=-543263.20778210554%2C860589.74633732392%2C430508.48474852438%2C2591739.4219473326&transparent=true&size=1242%2C2208&imageSR=5070&f=image The reason failed is because on REST, the ImageServer exportImage request format should look like this: http://sampleserver6.arcgisonline.com/arcgis/rest/services/NLCDLandCover2001/ImageServer/exportImage? however, current Quartz API doesn't setup a condition with ImageServer, it seems always using MapServer's export request: https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/export? I have already on your behalf logged this bug through our Beta community, please feel free to check from this url: AGSArcGISMapImageLayer exportImage requests not setup correctly for dynamic ImageServer Thanks for your reporting.
... View more
11-02-2016
10:32 AM
|
2
|
2
|
725
|
POST
|
Not too sure about this error message... However, found this thread on stackoverflow: ios - The 'Pods-App' target has transitive dependencies that include static binaries when installing GTM in a swift fram… has a similar error message that you mentioned from cocoapods. There is a new cocopods thread in geonet recently talks about how to download: installing Quartz SDK Beta 3 using CocoaPods We do have an old blog talks about cocoaPods: Installation for ArcGIS Runtime SDK for iOS with CocoaPods | Support Services Blog
... View more
11-01-2016
04:48 PM
|
1
|
0
|
474
|
POST
|
Hi Rami, I think the issue is you need to load the ImageServer depend on whether it is a tiled or dynamic layer. For more information, please check our Quartz documentation talks about layer: Layers—ArcGIS Runtime SDK for iOS (Quartz Beta) | ArcGIS for Developers Map services from ArcGIS for Server fall into two broad categories: tiled and dynamic. Tiled services provide pre-generated (cached) tiles based on the tiling scheme of the layer. Tiles may be provided as raster image tiles or as vector data tiles. The layer then assembles these tiles in the client app. You can access a tiled map service using a tiled layer. Dynamic map services, however, provide map images created on the fly as requested by the client. You can access dynamic map services using a map image layer. Based on this, here I shared with you a snippet code and it works fine to load the "tiled" Image service on Quartz iOS SDK: imageLayer = AGSArcGISTiledLayer(URL: NSURL(string: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Toronto/ImageServer")!)
self.map = AGSMap()
self.map.operationalLayers.addObject(self.imageLayer)
self.mapView.map = self.map
self.imageLayer.loadWithCompletion { (error) -> Void in
if let error = error {
print(error)
} else {
print(self.imageLayer.loadStatus.rawValue)
}
} Hope this can help.
... View more
10-31-2016
04:22 PM
|
0
|
4
|
725
|
POST
|
Hi Abdelrahman, Sounds like this is a known issue since we find this error message has been reported in this thread: Runtime crash on IPhone Suganya Baskaran Apr 19, 2016 10:23 AM Hi, thanks for reporting. This is a known issue with 64 bit devices and we'll work on fixing it in the next release. Can you try this workaround? Build the project with only 32 architectures. You can then run the app on all devices without a crash - the trade off being you would be unable to benefit from 64-bit computing.
... View more
10-25-2016
10:27 AM
|
0
|
3
|
1056
|
POST
|
Hi Chris, Not sure have you check this stack overflow thread before. ios - How to resume a download when the app force-Quit? - Stack Overflow
... View more
10-19-2016
04:42 PM
|
0
|
1
|
390
|
POST
|
Hi Tércyo, We do provide a sample code that shows how to sync arcgis-runtime-samples-ios/OfflineFeatureEditingSample at master · Esri/arcgis-runtime-samples-ios · GitHub Also we feel free to check our documentation explain about how to sync offline edits: Sync offline edits—ArcGIS Runtime SDK for iOS | ArcGIS for Developers Hope this can help.
... View more
10-19-2016
04:28 PM
|
0
|
0
|
238
|
POST
|
Hi Antonio, Sounds like you need to take a look about this AGSAuthenticationManager Class Reference By default, Runtime iOS SDK will use the default AuthenticationViewController to manager those authentication. Since you mentioned that you need some custom code to handle those wrong credentials, you should utilize this AGSAuthenticationManager class, <AGSAuthenticationManagerDelegate> Protocol Reference var item: AGSPortalItem?
var itemArray:NSMutableArray? = NSMutableArray()
var authenticationManager: AGSAuthenticationManager = AGSAuthenticationManager.sharedAuthenticationManager()
var portalItemID = String()
let portal = AGSPortal(URL: NSURL(string: "http://www.arcgis.com")!, loginRequired: true)
let map = AGSMap()
override func viewDidLoad() {
super.viewDidLoad()
self.authenticationManager.delegate = self
self.tags.append("Bingmaps")
self.portal.credential = AGSCredential(user: "***", password: "***")
self.portal.loadWithCompletion { [weak self](error) -> Void in
....
}
func authenticationManager(authenticationManager: AGSAuthenticationManager,
didReceiveAuthenticationChallenge challenge: AGSAuthenticationChallenge) {
print("This will triggered when recevive authentication Challenge")
}
func authenticationManager(authenticationManager: AGSAuthenticationManager,
wantsToDismissViewController viewController: UIViewController) {
print("This will triggered when dismiss the provided view controller ")
}
func authenticationManager(authenticationManager: AGSAuthenticationManager,
wantsToShowViewController viewController: UIViewController) {
print("This will triggered when show the provided view controller")
}
Also, feel free to take a look about this github sample: QuartzSecurity: An iOS app demonstrating how to use Quartz runtime security services.
... View more
10-19-2016
03:34 PM
|
2
|
1
|
911
|
POST
|
This thread is old, however I would like to share some information that I found about how to load an open source WMTSLayer in ArcGIS Runtime for iOS in Objective-c. For more information, please check this github sample page that I show how to load the WMTSLayer from an open source. Read Offline GDB With WMTSLayer as basemap Hope this can help.
... View more
10-03-2016
10:44 AM
|
1
|
0
|
785
|
POST
|
Even though this question is answered. I just want to add some comments in case someone else run into this type of issue. Checked the WAB 2.1 Developer edition file "MapUrlParamsHandler.js" under jumu.js folder from line 289: //by name first
getLayerByNameOrId('name', layerNameOrId, map).then(function(layer){
if(layer === null){
getLayerByNameOrId('id', layerNameOrId, map).then(function(layer2){
if(layer2 === null){
console.error('Invalid layer name or id.');
}else{
selectFeatures(map, layer2, queryArray);
}
});
}else{
selectFeatures(map, layer, queryArray);
}
});
} The logic is always prefer the layer' name first and then it's id. Therefore, recommend to put layer's name after 'query=' For example, if you want to query this layer's STATE_NAME = 'Alabama': Layer: states (ID: 3) In your WAB URL you should put like this, because the layer's name is state: http://localhost/webappbuilder/apps/4/?query=states,STATE_NAME,Alabama or http://localhost/webappbuilder/apps/4/?query=states,STATE_NAME=%27Alabama%27 Hope this can help.
... View more
09-30-2016
02:30 PM
|
1
|
2
|
2186
|
Title | Kudos | Posted |
---|---|---|
1 | 07-20-2015 10:15 AM | |
1 | 07-31-2015 08:53 AM | |
1 | 01-28-2016 04:55 PM | |
1 | 02-22-2016 02:07 PM | |
1 | 05-20-2015 04:54 PM |
Online Status |
Offline
|
Date Last Visited |
12-13-2023
01:09 AM
|