POST
|
Hi there, We're trying to programatically figure out if a user (john_smith) has access to a certain map layer and can load it without any issues. For that, using the node.js SDK, after we get the web map definition, using getItemData(mapId), for each basemap layer and operational layer, we try to get the owner/access level using getItem(itemId). Sometimes, several layers of type ArcGISFeatureLayer, have the same url, but different definitionExpression/query. Some of those layers have an itemId, some of them do not. For some layers, the query getItem(itemId) returns the following error "ArcGISRequestError: CONT_0001", but querying the layer for data, returns it without any issues (point, legend, popup info, etc). We run the second getItem(itemId) query because although the initial getItemData(mapId) might have some layer owner and/or access property, those are usually empty. My question is, what's the "correct" way to figure out if a user has access to a certain layer. Thank you, Marius
... View more
08-29-2023
05:33 AM
|
0
|
1
|
493
|
POST
|
Thanks for clarifying that. I've handled them as "switch:", hence the error. I'll convert it to the example code.
... View more
12-02-2021
06:27 PM
|
0
|
0
|
463
|
POST
|
Hello, It seems that somehow the AGSLayerViewState is set to 6. We already handle active/notVisible/outOfScale/loading/error/warning (0 to 5). I've checked the documentation https://developers.arcgis.com/ios/api-reference/_a_g_s_layer_view_state_8h.html#ae64e23b127ffb327986163f4b522cdfe and there are no other options. Do you have any ideas what would that mean? Thank you
... View more
12-02-2021
04:04 PM
|
0
|
2
|
507
|
POST
|
Hi Mark, Thanks for the reply. The first crash log reported above happened in exactly the scenario identified by you. iOS 12, running in Xcode, with Metal API enabled. I'll disable that. The second crash log happened on the customers' devices (in production). They were using Esri 100.6, 8 devices on iOS 12, 1 device on iOS 13, all of them running in the background (according to Fabric). Thank you, Marius
... View more
03-03-2020
07:56 PM
|
0
|
1
|
1181
|
POST
|
Hello, We're getting a few reports of SDK 100.6/100.7 crashing for the "com.esri.arcgis.mapRendererQ" thread. The crashlog look like this: Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 12
...
Thread 12 name: Dispatch queue: com.esri.arcgis.mapRendererQ
Thread 12 Crashed:
0 libsystem_kernel.dylib 0x0000000221cba0dc __pthread_kill + 8
1 libsystem_pthread.dylib 0x0000000221d33094 pthread_kill$VARIANT$mp + 380
2 libsystem_c.dylib 0x0000000221c12ea8 abort + 140
3 libsystem_c.dylib 0x0000000221be0afc __assert_rtn + 220
4 Metal 0x0000000224255134 MTLReportFailure + 500
5 MetalTools 0x000000024754b33c validateNewTexture+ 222012 (MTLDebugBuffer*, MTLTextureDescriptor*, unsigned long, unsigned long, unsigned int, unsigned int) + 1184
6 MetalTools 0x000000024754abb0 -[MTLDebugBuffer newTextureWithDescriptor:offset:bytesPerRow:] + 256
7 AppleMetalGLRenderer 0x00000002428917b4 GLDTextureRec::getTextureResource+ 34740 (unsigned int) + 312
8 AppleMetalGLRenderer 0x0000000242895b78 GLDContextRec::addRenderPassResources+ 52088 () + 40
9 AppleMetalGLRenderer 0x0000000242898ef4 gldClearFramebufferData + 224
10 GLEngine 0x00000002436e4018 glClear_Exec + 468
11 ArcGIS 0x00000001049292f0 Esri_runtimecore::Map_renderer::Map::draw+ 24974064 (std::__1::shared_ptr<Esri_runtimecore::Rendering_engine::Device> const&) + 2844
12 ArcGIS 0x0000000103946f00 Esri_runtimecore::Geo_views::Map_view::draw+ 8318720 (Esri_runtimecore::Geo_views::Device&) + 80
13 ArcGIS 0x00000001035e7f10 RT_GeoView_draw + 48
14 ArcGIS 0x0000000103249434 -[RTCGeoView draw:error:] + 988212 (RTCGeoView.m:608)
15 ArcGIS 0x000000010328721c -[AGSGeoViewRenderer doDraw] + 1241628 (AGSGeoViewRenderer_iOS.m:439)
16 ArcGIS 0x0000000103201020 __28-[AGSGeoView setRtcGeoView:]_block_invoke_2 + 692256 (AGSGeoView.m:297)
17 ArcGIS 0x0000000103248bd8 drawRequestedHandler + 986072 (RTCGeoView.m:279)
18 ArcGIS 0x00000001053e3380 Esri_runtimecore::Common::Signal_detail::Signal_base::notify_(Esri_runtimecore::Common::Function_ref<void + 36221824 (Esri_runtimecore::Common::Signal_detail::erased_target_base&)>) const + 432
19 ArcGIS 0x00000001038b803c Esri_runtimecore::Geo_views::Geo_view_draw_requested::draw_request_callback+ 7733308 () + 96
20 ArcGIS 0x000000010492bb90 Esri_runtimecore::Map_renderer::Map::on_pulse_+ 24984464 () + 5664
21 ArcGIS 0x00000001035e931c RT_GeoView_pulse + 44
22 ArcGIS 0x000000010324a054 -[RTCGeoView pulse:] + 991316 (RTCGeoView.m:785)
23 ArcGIS 0x0000000103286d68 __28-[AGSGeoViewRenderer pulse:]_block_invoke + 1240424 (AGSGeoViewRenderer_iOS.m:313)
24 libdispatch.dylib 0x000000011dc076f4 0x11dc04000 + 14068
25 libdispatch.dylib 0x000000011dc08c78 0x11dc04000 + 19576
26 libdispatch.dylib 0x000000011dc10bf4 0x11dc04000 + 52212
27 libdispatch.dylib 0x000000011dc118b4 0x11dc04000 + 55476
28 libdispatch.dylib 0x000000011dc1b77c 0x11dc04000 + 96124
29 libsystem_pthread.dylib 0x0000000221d3d114 _pthread_wqthread + 304
30 libsystem_pthread.dylib 0x0000000221d3fcd4 start_wqthread + 4 or Crashed: com.esri.arcgis.mapRendererQ
0 libGPUSupportMercury.dylib 0x21de5cfe4 gpus_ReturnNotPermittedKillClient
1 AGXGLDriver 0x2224c1ed8 gldUpdateDispatch
2 libGPUSupportMercury.dylib 0x21de5dfac gpusSubmitDataBuffers
3 AGXGLDriver 0x2224c3404 gldUpdateDispatch
4 GLEngine 0x22356d234 gliPresentViewES_Exec
5 OpenGLES 0x205141aa4 -[EAGLContext presentRenderbuffer:] + 80
6 ArcGIS 0x100f438c8 -[AGSGeoViewRenderer doDraw] + 473 (AGSGeoViewRenderer_iOS.m:473)
7 ArcGIS 0x100ebdab8 __28-[AGSGeoView setRtcGeoView:]_block_invoke.116 + 281 (AGSGeoView.m:281)
8 ArcGIS 0x100f05e70 drawRequestedHandler + 279 (RTCGeoView.m:279)
9 ArcGIS 0x103119fd0 Esri_runtimecore::Common::Signal_detail::Signal_base::notify_(Esri_runtimecore::Common::Function_ref<void (Esri_runtimecore::Common::Signal_detail::erased_target_base&)>) const + 436
10 ArcGIS 0x101584468 Esri_runtimecore::Geo_views::Geo_view_draw_requested::draw_request_callback() + 100
11 ArcGIS 0x10260bdf8 Esri_runtimecore::Map_renderer::Map::on_pulse_() + 5388
12 ArcGIS 0x101292cfc RT_GeoView_pulse + 44
13 ArcGIS 0x100f073b4 -[RTCGeoView pulse:] + 785 (RTCGeoView.m:785)
14 ArcGIS 0x100f432b0 __28-[AGSGeoViewRenderer pulse:]_block_invoke + 312 (AGSGeoViewRenderer_iOS.m:312)
15 libdispatch.dylib 0x201973a38 _dispatch_call_block_and_release + 24
16 libdispatch.dylib 0x2019747d4 _dispatch_client_callout + 16
17 libdispatch.dylib 0x20191d324 _dispatch_lane_serial_drain$VARIANT$mp + 592
18 libdispatch.dylib 0x20191de40 _dispatch_lane_invoke$VARIANT$mp + 428
19 libdispatch.dylib 0x2019264ac _dispatch_workloop_worker_thread + 596
20 libsystem_pthread.dylib 0x201b55114 _pthread_wqthread + 304
21 libsystem_pthread.dylib 0x201b57cd4 start_wqthread + 4 To reproduce it, we open a map, then move away from that view controller (so the map will be deallocated) and then open the same view controller again. This does not happen every time, but it happens often enough. Is there something we can cancel/delete, so these do not happen? Thank you, Marius
... View more
03-02-2020
08:06 PM
|
0
|
5
|
1649
|
POST
|
I thought that that might be the case. Thanks for confirming it.
... View more
02-20-2020
02:37 PM
|
0
|
0
|
1062
|
POST
|
Hello, We're getting a lot of these exceptions when moving from a view that has an Esri map, to a view that doesn't have one. Thread 1 Queue : com.apple.main-thread (serial)
#0 0x000000011a661854 in __cxa_throw ()
#1 0x000000010ed7dc60 in std::exception_ptr std::make_exception_ptr<pplx::task_canceled>(pplx::task_canceled) ()
#2 0x000000010ed7dfa7 in pplx::details::_CancellationTokenCallback<Esri_runtimecore::Geo_views::Map_view::set_viewpoint_async_(Esri_runtimecore::Geo_model::Viewpoint const&, float, double, Esri_runtimecore::Geo_views::Geo_view::Animate_set_viewpoint, Esri_runtimecore::Map_renderer::Animation::Curve)::$_25>::_Exec() ()
#3 0x000000010ec6a78f in pplx::details::_CancellationTokenState::_Cancel() ()
#4 0x000000010ec722b9 in Esri_runtimecore::Geo_views::Geo_view::~Geo_view() ()
#5 0x000000010e928745 in RT_GeoView_destroy ()
#6 0x000000010e533840 in -[RTCGeoView dealloc] ()
#7 0x000000010e6109a9 in -[RTCMapView dealloc] ()
#8 0x0000000117cbb0d6 in objc_object::sidetable_release(bool) ()
#9 0x000000010e4f08c5 in -[AGSGeoView .cxx_destruct] ()
#10 0x0000000117ca4f02 in object_cxxDestructFromClass(objc_object*, objc_class*) ()
#11 0x0000000117cb44b3 in objc_destructInstance ()
#12 0x0000000118ac95be in -[NSObject(NSObject) __dealloc_zombie] ()
#13 0x000000011e25a6c2 in -[UIResponder dealloc] ()
#14 0x000000011e6e231c in -[UIView dealloc] ()
#15 0x000000010e4ec81b in -[AGSGeoView dealloc] ()
#16 0x000000010e67b03d in -[AGSMapViewCommon dealloc] ()
#17 0x000000010e469285 in -[AGSMapView dealloc] ()
#18 0x0000000116da08a6 in @objc TCEsriSimpleMapView.__ivar_destroyer ()
#19 0x0000000117ca4f02 in object_cxxDestructFromClass(objc_object*, objc_class*) ()
#20 0x0000000117cb44b3 in objc_destructInstance ()
#21 0x0000000118ac95be in -[NSObject(NSObject) __dealloc_zombie] ()
#22 0x000000011e25a6c2 in -[UIResponder dealloc] ()
#23 0x000000011e6e231c in -[UIView dealloc] ()
#24 0x0000000116da067b in TCEsriSimpleMapView.__deallocating_deinit at /path/TCEsriSimpleMapView.swift:154
#25 0x0000000116da06bb in @objc TCEsriSimpleMapView.__deallocating_deinit ()
#26 0x0000000116dbc2f9 in ___lldb_unnamed_symbol262$$TCFramework ()
#27 0x0000000119909f10 in _swift_release_dealloc ()
#28 0x0000000116dbc38d in block_destroy_helper.152 ()
#29 0x000000011a3639c2 in _Block_release ()
#30 0x000000011a24e96c in _dispatch_source_handler_dispose ()
#31 0x000000011a24da82 in _dispatch_source_invoke ()
#32 0x000000011a245c1d in _dispatch_main_queue_callback_4CF ()
#33 0x0000000118a0b049 in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#34 0x0000000118a05ca9 in __CFRunLoopRun ()
#35 0x0000000118a05066 in CFRunLoopRunSpecific ()
#36 0x0000000122436bb0 in GSEventRunModal ()
#37 0x000000011e22dd4d in UIApplicationMain ()
#38 0x000000010d8e4b1b in main at /path/AppDelegate.swift:14
#39 0x000000011a2bfc25 in start () We're getting these because we've set a breakpoint on "All Exceptions". AFAIK, this does not actually crash the app. Still, I'd like to know if there is something we can do to not get them anymore (e.g. cancel any operations, clear any other delegates, etc). Thank you, Marius
... View more
02-18-2020
02:59 PM
|
0
|
2
|
1163
|
POST
|
Thanks Michael. After explaining the problem in the earlier post, I thought that this might be the solution. I'll give that a try.
... View more
10-28-2019
11:49 PM
|
0
|
0
|
1256
|
POST
|
My problem is not performance, but the fact that during the "setup" of the viewpoint, the reported currentViewpoint goes from 0,0 to the destination viewpoint and reports some of the intermediate states... (e.g. you may end up with 10,10 as a valid value, with isNavigating set to true, however that's just a transition from 0,0 to 100,100).
... View more
10-28-2019
09:20 PM
|
0
|
2
|
1256
|
POST
|
Thanks for this Nick. I'll check setting an observable on isNavigating, but ignoring it until the first isNavigating = false, sounds weird... This is a simplified layout of the maps code, all in the same class, with the self/strongSelf/etc bits removed. // At view init time mapView.viewpointChangedHandler = { if mapView.isNavigating { // Save changed map position } } // At map change webMap = AGSMap(item: userMap) // webMap = AGSMap(basemap: basemap) if mapView.map != nil { let currentViewpoint = mapView.currentViewpoint(with: .centerAndScale) webMap.initialViewpoint = currentViewpoint } webMap.load() { mapView.map = nil mapView.map = webMap } Re the set of logs, it's a truncated representation. I've moved the map around, and those gaps were there while manipulating the map. Maybe the gaps are from when the map was moving out of inertia though. If it helps, I can record a video.
... View more
10-28-2019
02:10 AM
|
0
|
4
|
1255
|
POST
|
Hello, I'm running into an issue when trying to save the current map viewpoint only after a user interaction. I've implemented viewpointChangedHandler, however, that method is called also when the map is programatically setup (e.g. at start up). To avoid saving a map position that wasn't set by the user, I'm also checking that isNavigating == true, however that doesn't seem to be enough. It seems that isNavigating might be true/false in other situations as well. Logs from my tests: // Loading map (with viewpoint set to 37.926438,-122.070035,0.004000,0.006430,0.000000)
18:28:37:196 isNavigating: true viewpoint: -0.000000,0.000000,160.809973,360.000000,0.000000
18:28:37:228 isNavigating: true viewpoint: 0.000052,-0.000931,160.798596,359.913489,0.000000
18:28:37:450 isNavigating: false viewpoint: 37.926438,-122.070035,0.004000,0.006430,0.000000
// Rotating map, pan, zoom
18:29:40:253 isNavigating: true viewpoint: 37.926362,-122.070321,0.002501,0.004020,79.688963
18:29:40:570 isNavigating: true viewpoint: 37.926356,-122.070335,0.002631,0.004229,83.738892
18:29:40:821 isNavigating: true viewpoint: 37.926357,-122.070380,0.002793,0.004489,97.041926
18:29:41:040 isNavigating: false viewpoint: 37.926358,-122.070381,0.002793,0.004489,97.376031
18:29:43:911 isNavigating: true viewpoint: 37.926354,-122.070384,0.002873,0.004618,97.376031 I found this thread for the old SDK notification when user moves map, that can be combined with lastChangeFromInteraction, but I can't find something similar in SDK 100.6. What's the most reliable way to save the viewpoint after a user interaction? Thank you, Marius
... View more
10-25-2019
12:48 AM
|
0
|
6
|
1402
|
POST
|
Hello, I'm trying to hook up a popover to a map, so when you tap on a feature (part of a AGSFeatureLayer, loaded from the portal map), I'll show what attributes were available in that feature. I've been using ```geoView identifyLayersAtScreenPoint:tolerance:returnPopupsOnly:completion:``` to try to identify that feature. However, when using that code, I get a C++ exception (attached). The identifyResults array from the completion block returns the correct layer, but the layer has no geoElements. Are these two events related (the C++ exception and no results), or is there a different bug in my code? Thank you, Marius
... View more
04-19-2017
09:44 PM
|
0
|
1
|
684
|
POST
|
David: swapping the map with a tiled one solves the issue. Thank you for that suggestion. Divesh: Thank you for confirming that. Is there a beta release coming soon?
... View more
03-23-2017
05:04 PM
|
0
|
0
|
690
|
Title | Kudos | Posted |
---|---|---|
1 | 01-20-2016 10:19 PM | |
2 | 11-14-2016 02:10 PM |
Online Status |
Offline
|
Date Last Visited |
08-30-2023
12:08 AM
|