POST
|
I've verified the manually downloaded geodatabase works in the app, so it appears the problem is something client side.
... View more
02-09-2017
09:56 AM
|
0
|
0
|
608
|
POST
|
The replica request goes through its normal chain of progress updates and then a completed response. I can visit that URL to download the replica manually, so I think it's all working. However that file has a name like _ags_data{9229625E937048DE9C27582E32519345}.geodatabase which is not the final name, so I'm uncertain if ArcGIS Runtime has to do something else with the file before it comes usable.
... View more
02-09-2017
07:50 AM
|
0
|
1
|
608
|
POST
|
I'm trying to generate a somewhat large geodatabase, it has 7 layers but a few of them have image attachments and the whole thing comes out to several gigabytes. When I run this using the code in the qml sample for v100, it takes about 20 minutes and then says "File not found Error with download, geodatabase file is not present at the expected path.". If I remove some of the layers from the replica request, this does not happen. Does anyone know what might be going wrong or how I can further test this? Additionally, running the same task on Android results in the app just spontaneously closing with no message of any kind in Qt Creator or on the device. I'm assuming this is an out of memory exception as the task eventually uses 6GB of ram on my desktop. Is there any way to get the task to run safely on mobile, or are we going to have to pre-generate geodatabases and download/register them to get around this? Thanks, Jon
... View more
02-09-2017
07:30 AM
|
0
|
4
|
1030
|
POST
|
I did report the feature cache issue, I receieved an email from someone saying they'd look into it, but never heard any more. Yes I am using version 100.0, flickering may have been the wrong word. Feature layers appear to turn on and off in sequence after panning/zooming. The frustrating part is that the features are there (and properly translated/scaled) right after panning/zooming, but then disappear and reappear a short time later. It seems to be going through them 1 layer at a time. This also significantly slows down interaction with the feature layers as they don't seem to respond until after they disappear and reappear. Additionally, even just turning on the layers takes a strange amount of time. I have a layer with somewhere around 1500 features in it. When I add that layer with the JS api, it takes about 1 second to load and never brings my chrome thread above 5% cpu, when I do it in QT it takes 5 seconds and the thread goes up to 16% cpu the whole time. I remember having a similar problem in 10.2.6, I can't believe it's still going on. I remember CPU utilization skyrocketing every time a json feature response came back from the server. Miraculously this performs far better on my android tablet than it does on my desktop, but it's still very bad. My desktop is orders of magnitude faster than the tablet so I'm not sure what's causing that performance disparity. The tile loading is less of an issue - it works, it's just slower than the JS api's tiles. On the release notes there is something written about tiles performing slowly when features are on the map, I assume that's what it is.
... View more
02-08-2017
01:42 PM
|
0
|
0
|
732
|
POST
|
So there won't be any bugfixes or performance updates until (maybe) May? That's a long time to live with the issues that have existed since day one. For example: When large quantities of features are present in the map, panning around and zooming cause the features to flicker on and off - it's not a breaking bug but it makes this platform very undesirable to use. Feature caching also doesn't work, causing massive data usage and tons of duplicate requests being sent out, not to mention the wasted processing time (my cpu floors a thread for 5 seconds literally every time I pan the map, even if it's just by 1 pixel - I can only imagine what damage this is doing to mobile battery life). Tile loading is inexplicably slow. Using the same online tile cache with the javascript API yields no such problem. There are numerous other issues already documented in the release notes, many of which have a great impact on our apps. I know some of the things I mentioned are only poor performance and not necessarily bugs, but performance is one of the primary benefits of Qt over web. Half a year between updates is pretty tough to swallow if there are this many issues with each release. Is there any way issues like these can be addressed in a reasonable time-span instead of being bundled with major releases?
... View more
02-08-2017
07:03 AM
|
2
|
8
|
732
|
POST
|
Hello Lucas, since I asked this question have reviewed our tablet options and discovered quite a large number of tablets we would have liked to use if x86 were supported. Asus and Acer produce numerous x86 tablets at the moment. The future of Intel Atom for android seems uncertain, but I'm wondering with the advent of Core M if we will see a transition to that for android tablets. As a side note, there is also libhoudini which allows x86 android devices to use libraries compiled for armv7. I discovered this when I was able to run an ArcGIS Qt app on an x86 android tablet without changing anything. Unfortunately, the process isn't so smooth for the emulator and it looks like I would have to jump through some hoops to set it up. I just wanted to bump this thread again to let you know that we did consider using ArcGIS Qt in a production environment for X86 android, but are deterred due to the uncertainty of future support for this, lack of built in emulator support, and the potential performance drawbacks of libhoudini.
... View more
01-06-2017
08:00 AM
|
0
|
1
|
422
|
POST
|
Thank you Lucas, good to know that it's the same instance of FeatureTable. As for identify, when you say "identify()" do you mean any of the MapView.identifyLayer.. and MapView.identifyGraphics.. methods? I've tried identifyLayer() and identifyLayerWithMaxResults() and both of these are sending queries to the server with outFields=*, resulting in the full sized response containing all fields and all attributes. This can be seen in the attribute editing qml example. If you comment out "featureLayer.selectFeaturesWithQuery(params, Enums.SelectionModeNew);" then clicking on features just calls the identify method and you'll see it actually returns the full result. Is that the expected behavior?
... View more
12-02-2016
03:54 AM
|
0
|
0
|
285
|
POST
|
Unfortunately I have not been able to reproduce this with stripped down code and the public arcgis example services.
... View more
11-29-2016
09:20 AM
|
0
|
1
|
631
|
POST
|
I don't see how to validate an attribute value from the fields in the feature table class. Say for example I want to allow users to input text to change an attribute value for an "esriFieldTypeDate" field, when I input "test" in that field, it fails to update saying the string is an invalid format. Are correct formats for constructing "esriFieldTypeDate" from a string listed somewhere?
... View more
11-29-2016
08:56 AM
|
0
|
1
|
418
|
POST
|
MapView.identifyLayer seems to work well, it fires off a single request and returns a Feature object which has all the feature's fields and attributes. That feature comes from an instance of FeatureTable that I never created directly and prior to this query had no reference to, so I'm a bit weary to trust it. FeatureLayer.selectFeaturesWithQuery is used in the feature attribute update example. This sent me down a very confusing path as I didn't realize that waiting for the feature to "load" after you've already waited for the feature response was necessary. I now see this in the example, but I was originally working from the documentation which doesn't say anything about this. Feature is a loadable, but it's not mentioned that while the feature object and its properties/methods are usable before loading, that the feature's attributes aren't all available until after loading. The peculiar part about this is that it results in having to wait for two chained requests in order to accomplish what a single request would have accomplished, thus making a non-loadable version actually faster. FeatureTable.queryFeatures seems to work the exact same as selectFeaturesWithQuery, only you obviously have to select the feature yourself if you want it selected. I noticed that I can actually just use MapView.identifyLayer's result as my feature object, even though it comes from an unknown FeatureTable. This results in only a single request being fired off, but literally the exact same response as doing the triple-request chain that occurs in the example. My questions: Where does MapView.identifyLayer get its FeatureTable instance? It's different than the one I created. Can I update a feature in my own FeatureTable instance with the feature from MapView.identifyLayer? I've tried this and it seems to work for feature attributes, but I'm having difficulty with attachments. Is there a way to get a feature's full data in a single request AND be able to edit it? It seems unreasonable to require 3 or even 2 requests for the same data to accomplish this. I confirmed this can be seen in the feature attribute update example if you monitor http requests. The initial click triggers two requests, and hitting update triggers another. All 3 requests query for the same feature.
... View more
11-29-2016
08:34 AM
|
0
|
2
|
702
|
POST
|
Feature attributes have specific data types which the QT SDK v100.0 enumerates here: https://developers.arcgis.com/qt/latest/qml/api-reference/enums-fieldtype.html How would you recommend verifying that a user-inputted string will be supported in the feature table? If a datum is formatted incorrectly, the feature table rejects my updates instantly without sending a request. To me this indicates there are definitions for these field types somewhere in the library. How do I access this so I can make sure to validate/convert user input correctly?
... View more
11-28-2016
04:27 PM
|
0
|
3
|
989
|
POST
|
In my ArcGIS Runtime v100.0 QML app, I'm experiencing a seemingly UI-caused crash which I am attempting to debug. When I run in debug mode, the app crashes with exceptions before ever reaching that UI crash. I am having difficulty debugging it due to my inexperience both with C++ and with the Qt/ArcGIS Runtime SDK architecture. The exception I receive is: Exception at 0x7ffca7841f28, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) in runtimecore!kdu_tile::get_mct_dwt_info I am dynamically creating/deleting feature layers and tables with this function: function changeLayer(layerId){ if(featureLayer!==null){ if(featureTable!==null){ featureLayer.featureTable.destroy(); } featureLayer.destroy(); } var layerToRemove = null; map.operationalLayers.forEach(function(layer,layerIndex){ if(layer === featureLayer){ layerToRemove = layerIndex; } }); if(layerToRemove !== null){ map.operationalLayers.remove(layerToRemove); console.log("removed",layerToRemove); } featureLayer = ArcGISRuntimeEnvironment.createObject("FeatureLayer",{},map); featureLayer.selectFeaturesStatusChanged.connect(selectFeaturesStatusChanged); var featureTableConfig = { url: featureServerUrl+layerId, featureRequestMode: Enums.FeatureRequestModeOnInteractionCache, credential: userCred }; featureTable = ArcGISRuntimeEnvironment.createObject ("ServiceFeatureTable",featureTableConfig,featureLayer); featureLayer.featureTable = featureTable; featureLayer.featureTable.loadStatusChanged.connect(function(){ if(featureLayer.featureTable.loadStatus==Enums.LoadStatusLoaded){ actionBar.title = featureLayer.featureTable.tableName; var tempArr =[]; for(var i=0,l=featureLayer.featureTable.fields.length;i<l;i++){ if(featureLayer.featureTable.fields[i].editable){ tempArr.push(featureLayer.featureTable.fields[i]); } } featureFields = tempArr; } }); map.operationalLayers.append(featureLayer); } And this is the qml structure of the map on component load: MapView { id:mapView anchors.fill: parent wrapAroundMode: Enums.WrapAroundModeDisabled attributionTextVisible : false Map { id: map // add the BasemapImagery basemap to the map ArcGISTiledLayer { url: baseMapUrl } } onMouseClicked: { mapView.identifyLayerWithMaxResults
(featureLayer, mouse.x, mouse.y, 22, false, 1000); } onIdentifyLayerStatusChanged: { if (identifyLayerStatus === Enums.TaskStatusCompleted) { if (identifyLayerResult.geoElements.length >0){ var geoElem = identifyLayerResult.geoElements[0]; params.objectIds = [geoElem.attributes.attributeValue("objectid")]; featureLayer.selectFeaturesWithQuery(params, Enums.SelectionModeNew); } } } QueryParameters { id: params maxFeatures: 1 } } This is the part of the changeLayerId function where the crash seems to be occurring: featureTable = ArcGISRuntimeEnvironment.createObject ("ServiceFeatureTable",featureTableConfig,featureLayer);
... View more
11-25-2016
09:53 AM
|
0
|
3
|
2599
|
POST
|
Hello again, I'm still working in v100.0 and I've decided to test the feature table caching. The default mode (OnInteractionCache) seems to cache features that are already on screen, and the only time it doesn't send out a request is if I zoom in on a point that's already on screen. If I pan back and forth within the same small area, it sends requests every time and it receives the exact same responses every time. I thought the cached features would persist in memory even if you change extents and come back, is that wrong?
... View more
11-23-2016
05:19 PM
|
0
|
1
|
1492
|
POST
|
Ah, great work! Thanks again for your help. I made the foolish assumption that it would still require separate ArcGISRuntime methods.
... View more
11-22-2016
07:31 AM
|
1
|
0
|
428
|
POST
|
I'm searching the site using the full site search and I cannot find a reference to a proxy in the api reference for 100. It also won't return results for "proxy" for the QML 10.2.6 despite its setupProxy method, so I'm not sure how much I trust that site search tool now. I downloaded the entire API reference so I could search it locally (sorry) and I still don't see results for "proxy". Is there a renamed method or any alternate way of routing all requests through Charles for testing? (Sorry for so many questions in one day, I'm sure you're busy but I appreciate any help.)
... View more
11-22-2016
07:18 AM
|
0
|
2
|
654
|
Title | Kudos | Posted |
---|---|---|
2 | 02-08-2017 07:03 AM | |
1 | 11-22-2016 06:48 AM | |
1 | 11-22-2016 07:31 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|