|
POST
|
Hi @GarethBlock_Ti , We've seen this with other folks reporting similar issues. It seems to happen when you use Qt provided by the package manager or other similar means. These are built with version tagging enabled. We build our SDK against the version of Qt provided by the Qt Company directly. The first thing to try would be downloading Qt from the Qt Company directly and see if that fixes it: https://www.qt.io/download . If that's not possible, the next thing would be to see if you can obtain the Qt sources and build the version you want using the Qt Company's method. The key would be to disable the version tagging via QT_NO_VERSION_TAGGING during the configure step. The other one we've seen is "operator delete(void*, unsigned long)@Qt_5". Let us know if this helps.
... View more
10-19-2021
02:19 PM
|
0
|
0
|
1322
|
|
BLOG
|
@MarkCederholm we checked into it and sure enough we do have a bug in Qt. We are fixing it for the upcoming 100.13 release, but in the meantime here's a workaround to get the time down for Qt. // Generate multipoint geometry
MultipointBuilder* mb = new MultipointBuilder(_sr, NULL);
auto points = mb->points();
for (int i = 0; i < iNumPoints; i++)
{
double dX = dXMin + (dXMax - dXMin) * _rand->generateDouble();
double dY = dYMin + (dYMax - dYMin) * _rand->generateDouble();
points->addPoint(dX, dY);
} We weren't caching the PointCollection class internally, and calling mb->points() in a loop that way exposed the issue. In my testing the code with that one change drops from around ~32 seconds (on macOS) to ~4 seconds. I'd be interested to hear if you see a similar speedup with that change, but not required. Thank you again for posting this. You helped us identify and fix a bug!
... View more
10-12-2021
11:25 AM
|
2
|
0
|
3469
|
|
BLOG
|
@MarkCederholm , thanks for posting this. I agree with everything @dotMorten_esri said. We will look into this on the Qt team to make sure we do not have this type of overhead compared to .NET and Java Runtime SDKs. The numbers are very surprising that the Qt C++ SDK, which is native C++ through the entire stack, would be roughly twice as slow as our companion Runtime SDKs.
... View more
09-30-2021
07:57 AM
|
0
|
0
|
3553
|
|
POST
|
@JustinSteventon sorry for the delay. I will log an internal issue for the team to keep looking into this. In the meantime I encourage you to open an official support request.
... View more
09-24-2021
12:09 PM
|
0
|
0
|
2659
|
|
POST
|
@JustinSteventon, thanks for the extra info. I still cannot reproduce the problem on my end. One of my colleagues attempted and also couldn't reproduce it. The stack trace is limited, so hard to tell from that. Are you able to determine which call is the culprit that's crashing? I can see in the stack it's getting into our Runtime library, but that's all. Hopefully it's not a Heisenbug that suddenly works fine after you alter the code with some logging. For example, does this code point to a particular function that's crashing? onViewpointChanged: {
console.log("screenToLocation");
let screenToLocation = mapView.screenToLocation(width / 2, height / 2);
console.log("Factory.SpatialReference.createWgs84()");
let sr = Factory.SpatialReference.createWgs84();
console.log("GeometryEngine.project");
let point = GeometryEngine.project(screenToLocation, sr);
console.log("ArcGISRuntimeEnvironment.createObject");
let viewpoint = ArcGISRuntimeEnvironment.createObject("ViewpointCenter", {center: point, targetScale: mapView.mapScale})
console.log(JSON.stringify(viewpoint.json))
}
... View more
09-15-2021
04:21 PM
|
0
|
2
|
2732
|
|
POST
|
Hi @JustinSteventon , Thanks for providing the test project. That is very helpful in assisting us with reproducing the problem. Unfortunately, I cannot reproduce the problem on macOS with Qt 5.15.2 or 5.15.5, or with Qt 5.15.5 on iOS. All my tests were with 100.12. The only tweak I made to the code was this, aside from an API key to get the basemap working. console.log(JSON.stringify(viewpoint.json)) But even without that change it did not crash. Can you provide some more information? What version of Qt are you using? Can you provide a stack trace of the crash on macOS? Also, can you confirm if your version of the app has an API key and the basemap is rendering?
... View more
09-14-2021
05:12 PM
|
0
|
4
|
2764
|
|
POST
|
That's great to hear, @Jean-Philippe . We're always happy to help, so don't hesitate to reach out with any other questions.
... View more
09-03-2021
02:24 PM
|
0
|
0
|
2435
|
|
POST
|
@Jean-Philippe , It sounds like you're on the right track. It's suspicious that numberOfFeatures would return 0 if that feature table is rendering data. ShapefileFeatureTable is a Loadable object, so before running any async tasks with it or checking the number of features, you must make sure it's loaded first. Please confirm if the table is loaded and then we can troubleshoot further. Here's an example. ShapefileFeatureTable* table = new ShapefileFeatureTable("/path/to/myData.shp", this);
connect(table, &ShapefileFeatureTable::doneLoading, this, [table](Error e)
{
if (!e.isEmpty())
{
qDebug() << "table failed to load:" << e.message() << e.additionalMessage();
return;
}
qDebug() << table->numberOfFeatures();
}); When you visualize the table data with a FeatureLayer, that will automatically load the table so it can be displayed.
... View more
09-02-2021
02:55 PM
|
0
|
2
|
2443
|
|
POST
|
Hi @Jan-Tschada , We do have CMake support with the ArcGIS Runtime SDK for Qt. If you create a new ArcGIS template app with Qt Creator, it will give you the option to use QMake or CMake. I've configured a 100.11.2 CMake template to share with you. There's an included CMakeLists.txt, FindArcGISRuntime.cmake and the SDK installation includes a ArcGISRuntime.cmake file that does the rest (included in sdk/ideintegration folder). I hope this works for you.
... View more
08-10-2021
08:41 AM
|
1
|
1
|
2850
|
|
POST
|
Hi @VikasGanesh , I think some of this may be doable with the Runtime, but the workflow sounds better suited to ArcGIS Pro utilizing the export tools. https://pro.arcgis.com/en/pro-app/latest/help/data/geodatabases/overview/export-data.htm However, if you need a Runtime solution, you can use ShapefileFeatureTable class, and that will give you access to all the features in the Shapefile feature table. https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-shapefilefeaturetable.html Once it's loaded you can use the inherited methods from FeatureTable, like queryFeatures to find all features, read their info and write them out (somehow) directly to xml. https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-featuretable.html#queryFeatures When using queryFeatures, you can provide "1=1" as your whereClause to query all features. https://developers.arcgis.com/qt/cpp/api-reference/esri-arcgisruntime-queryparameters.html#setWhereClause I think that would get you there, but I still think ArcGIS Pro would be the best option is it is better suited to data export workflows. I hope this helps.
... View more
07-29-2021
10:11 AM
|
0
|
1
|
2749
|
|
POST
|
@BrianCrist thanks for the additional info. I do think that what I was seeing was the same issue you are seeing and it doesn't happen with the version we have in development right now (100.12). Another thing to note is that the 100.10 Runtime release is built with Qt 5.15.1, so you may run into subtle issues running against 5.15.0. I don't think that's related to the issue at hand, but I recommend jumping up to Qt 5.15.1 minimum or latest 5.15.X you have access to.
... View more
07-21-2021
09:41 AM
|
0
|
0
|
1791
|
|
POST
|
Hi @BrianCrist, can you provide some more details? What OS are you on and which version of the Runtime are you using? Do you have a lot of graphics in your overlay? I am able to reproduce something similar by doing the following: Run a template app in 3D (the one we provide with the SDK). Add an ArcGISSceneLayer Once the scene loads, start running identifyLayer operations in a loop covering the screen (around a thousand). The tasks pile up and never complete like you're reporting. Now with that being said, I am testing on macOS and using 100.11.2. Under typical conditions I was not able to reproduce the problem. I even implemented identify-on-mouse-move in the identify graphic sample you referenced which should overwhelm the API with identify calls as the mouse is moved around the screen. But even in that case all the tasks completed. Furthermore, even with the problematic scenario I am running, it does not happen with our next release in development (coming soon!). Here is some of the test code I used: connect(m_scene, &Scene::doneLoading, this, [this](Error)
{
QTimer::singleShot(2000, this, [this]()
{
// immediately run around ~1K identify operations to overwhelm the API
const auto width = m_sceneView->widthInPixels();
const auto height = m_sceneView->heightInPixels();
for (int w = 0; w < width; w+=22)
{
for (int h = 0; h < height; h+=22)
{
constexpr double tolerance = 15.0;
constexpr bool returnPopupsOnly = false;
constexpr int maximumResults = 50;
const auto watcher = m_sceneView->identifyLayer(m_sceneLayer, w, h, tolerance, returnPopupsOnly, maximumResults);
const auto id = watcher.taskId();
m_taskWatchers[id] = watcher;
qDebug() << "Task started" << id << "total in progress" << m_taskWatchers.count();
}
}
});
});
//
connect(m_sceneView, &SceneQuickView::identifyLayerCompleted, this, [this](QUuid id, IdentifyLayerResult* result)
{
std::unique_ptr<IdentifyLayerResult> r(result);
m_taskWatchers.remove(id);
qDebug() << "Task done" << id << "total in progress" << m_taskWatchers.count();
});
... View more
07-20-2021
05:34 PM
|
0
|
2
|
1798
|
|
POST
|
Hi @SupratimChatterjee , I think the only piece you may be missing is the type registration. https://github.com/Esri/arcgis-runtime-samples-qt/blob/main/ArcGISRuntimeSDKQt_CppSamples/DisplayInformation/ShowCallout/ShowCallout.cpp#L36-L41 If you need to expose data from C++ to QML, you can use Q_PROPERTY for that. https://github.com/Esri/arcgis-runtime-samples-qt/blob/main/ArcGISRuntimeSDKQt_CppSamples/Routing/NavigateRoute/NavigateRoute.h#L46-L48 Let me know if that works for you.
... View more
07-16-2021
02:26 PM
|
1
|
1
|
3050
|
|
POST
|
@FatmaAkdemir thanks for the update. I am not sure why that would matter for loading raster elevation data. Would you be willing to share what language the OS was in when it was failing? I want to see if we can replicate the issue so we can follow up.
... View more
07-15-2021
03:23 PM
|
0
|
1
|
2433
|
|
POST
|
Hi @SupratimChatterjee , Yes this is possible, but the specifics may differ based on your approach or specific app architecture. We have a sample now, the HillShadeRenderer sample that has three qml files in the same app. They are able to share info and cross-call between them as needed. https://github.com/Esri/arcgis-runtime-samples-qt/tree/main/ArcGISRuntimeSDKQt_QMLSamples/Layers/Hillshade_Renderer You can see that https://github.com/Esri/arcgis-runtime-samples-qt/blob/main/ArcGISRuntimeSDKQt_QMLSamples/Layers/Hillshade_Renderer/HillshadeSettings.qml#L127 is calling a applyHillshadeRenderer function defined over in a different qml file: https://github.com/Esri/arcgis-runtime-samples-qt/blob/main/ArcGISRuntimeSDKQt_QMLSamples/Layers/Hillshade_Renderer/Hillshade_Renderer.qml#L83 Using a similar pattern you should be able to share info between your qml files in your application.
... View more
07-15-2021
10:19 AM
|
0
|
3
|
3063
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 04-22-2026 12:26 PM | |
| 1 | 10-22-2025 03:59 PM | |
| 1 | 06-18-2025 10:30 AM | |
| 1 | 06-18-2025 08:43 AM | |
| 1 | 05-15-2025 01:10 PM |
| Online Status |
Offline
|
| Date Last Visited |
04-22-2026
12:23 PM
|