|
POST
|
Hi! Does ESRI know that there is a memory Leak using ESRI::ArcGISTiledLayer, ESRI::Basemap (V100.5 and V100.6)) Creating and destroing a simple map WITHOUT terminating the application. Valgrind (@V100.5) class ESRI::ArcGISTiledLayer ==24614== 15,592 (1,744 direct, 13,848 indirect) bytes in 1 blocks are definitely lost in loss record 835 of 855 ==24614== at 0x4C2E2AF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24614== by 0x40F5E69: operator new(unsigned long) (in /usr/lib64/libc++.so.1.0) ==24614== by 0xA877D11: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xA1FF237: RT_ImageTiledLayer_create (in /usr/lib64/libruntimecore.so) ==24614== by 0x5206BE1: ESRI::RuntimeCore::QRTImageTiledLayer::QRTImageTiledLayer() (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x525969C: ESRI::RuntimeCore::QRTArcGISTiledLayer::QRTArcGISTiledLayer(ESRI::RuntimeCore::QRTTileCache*) (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x55BCC65: QRTImpl::ArcGISTiledLayerImpl::ArcGISTiledLayerImpl(std::shared_ptr<QRTImpl::TileCacheImpl> const&) (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x49A566: Esri::ArcGISRuntime::ArcGISTiledLayer::ArcGISTiledLayer(Esri::ArcGISRuntime::TileCache*, QObject*) (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) ==24614== by 0x498C34: MapWindow::MapWindow() (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) ==24614== by 0x4971CA: main (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) class ESRI::Basemap (just the main leaks of ESRI::Basemap) ==24614== 4,288 bytes in 8 blocks are still reachable in loss record 806 of 855 ==24614== at 0x4C2E2AF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24614== by 0x40F5E69: operator new(unsigned long) (in /usr/lib64/libc++.so.1.0) ==24614== by 0xC43FB01: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC43A737: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC43A2A2: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC44343C: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC442110: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xA07D9D4: RT_ArcGISRuntimeEnvironment_setInstallDirectory (in /usr/lib64/libruntimecore.so) ==24614== by 0x5255D74: ESRI::RuntimeCore::QRTArcGISRuntimeEnvironment::setInstallDirectory(QString const&, ESRI::RuntimeCore::QRTObject*) (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x56C1574: QRTImpl::ArcGISRuntimeEnvironmentImpl::initialize() (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x4A21CD: Esri::ArcGISRuntime::Basemap::Basemap(QObject*) (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) ==24614== by 0x4985B4: MapWindow::MapWindow() (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) ==24614== ==24614== 4,288 bytes in 8 blocks are still reachable in loss record 807 of 855 ==24614== at 0x4C2E2AF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24614== by 0x40F5E69: operator new(unsigned long) (in /usr/lib64/libc++.so.1.0) ==24614== by 0xC43FB01: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC43A737: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC43A2DF: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC44343C: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xC442110: ??? (in /usr/lib64/libruntimecore.so) ==24614== by 0xA07D9D4: RT_ArcGISRuntimeEnvironment_setInstallDirectory (in /usr/lib64/libruntimecore.so) ==24614== by 0x5255D74: ESRI::RuntimeCore::QRTArcGISRuntimeEnvironment::setInstallDirectory(QString const&, ESRI::RuntimeCore::QRTObject*) (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x56C1574: QRTImpl::ArcGISRuntimeEnvironmentImpl::initialize() (in /usr/lib64/libEsriCommonQt.so) ==24614== by 0x4A21CD: Esri::ArcGISRuntime::Basemap::Basemap(QObject*) (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) ==24614== by 0x4985B4: MapWindow::MapWindow() (in /shd/CTC/TOOLS/LTS-Esri-SupportDir/LTS-Esri/Prepared/LayerMemoryLeak/LayerMemoryLeak) and some more I am already in contact with the support team, but no real progress ...
... View more
08-28-2019
12:53 AM
|
0
|
13
|
2188
|
|
POST
|
Hi Lucas! We are have an aerial map and a topographic map for the same region. The do not have the same extent. (And we are not ensure this, it´s handled by the customer...) The fullExtent seems to be defined by the basemap loaded first, right? So, if one user prefers to have the aerial on top and the 2nd prefers the the opposite order. they have a different fullExtent. This is a problem. The user can´t move to a location which is covered by the 2nd basemap but not by the first. Can you understand, that i would simply like to build a union of the single extents and set that as the fullExtent? Any suggesttions?
... View more
08-15-2019
02:03 AM
|
0
|
4
|
1541
|
|
POST
|
Hi Luke! Here Release notes for 100.4.0—ArcGIS Runtime SDK for Qt | ArcGIS for Developers i could read that the BUG-000116279 should be solved. Unfortunately i could not confim 😞 From my point of view the issue is still valid. (Checked with 100.4.0 and the attached cache) Additionally i have problems to load a tpk. May just a part of the bug was fixed? Greeting from Germany 🙂
... View more
03-20-2019
06:41 AM
|
0
|
1
|
2113
|
|
POST
|
You suggest to wait for doneLoading of all basemap layer before request fullExtent of each? I think i already did it with my current workaround, to skip the call if that layer is not loaded yet: Esri::ArcGISRuntime::Envelope LayerFactoryImpl::fullExtentOfBasemaps(double margin_zeroToOne) const { Esri::ArcGISRuntime::LayerListModel *model = d->m_basemap->baseLayers(); if (!model || model->isEmpty()) return Esri::ArcGISRuntime::Envelope(); double xmin = std::numeric_limits<double>::max(); double ymin = std::numeric_limits<double>::max(); double xmax = std::numeric_limits<double>::lowest(); double ymax = std::numeric_limits<double>::lowest(); Esri::ArcGISRuntime::SpatialReference sr; for (int idx = 0; idx < model->size(); ++idx) { Esri::ArcGISRuntime::Layer *layer = model->at(idx); // 12.12.2018, N. Thoden, V100.4: // Do not call fullExtent if layer is not loaded. // Envelope contains nan and will not changed on further calls... if (!layer || (layer->loadStatus() != Esri::ArcGISRuntime::LoadStatus::Loaded)) continue; const Esri::ArcGISRuntime::Envelope singleEnv = layer->fullExtent(); ... } ... This avoids getting an invalid fullExtent. (Typically layer->fullExtent().xmin() ; .ymin() ; xmax() ; ymax() are returning nan if not loaded) Until now i can´t recognize a relation between the loadStatus of one basemap layer and the result of fullExtent of another basemap layer. Does this answer your question? Norbert BTW: I wish you a Merry Christmas!
... View more
12-20-2018
12:15 AM
|
0
|
1
|
1116
|
|
POST
|
Hi! If i resize the mapView, the center and scale stays constant and the extent chenges. On the other hand: If i do the same with a sceneView, the extent seems to be constant and the scale chenges... Is that different behaviour intended? Why? Thx
... View more
12-19-2018
06:23 AM
|
0
|
2
|
1241
|
|
POST
|
Hi Lucas! When the first basemap layer is loaded, Map::doneLoading is emitted. Most of my following code depends on that signal. (The remaining basemaps are loaded simutaneously.) So it could happen that the code combining the fullExtent of each basemap layer is performed while just the first basemap layer is loaded. As described above i skip the call to Layer::fullExtent() if the loadStatus is not loaded. I tried to call fullExtent() on a layer which is not loaded yet. I called fullExtent() a long time after everything is loaded (e.g. 1 minute) and it´s still invalid (nan). I can´t get correct fullExtent if i performed the call to early! So i assume that the values are cached even it the layer is not loaded.... Maybe this caching is more like a side effect than itended, but i was surprised about that behaviour. There is not hint in the documentation and i don´t know, which methods behaves similarly...
... View more
12-19-2018
03:30 AM
|
0
|
3
|
1116
|
|
POST
|
Hi! I would like to share an effect around Esri::ArcGISRuntime::Layer::fullExtent(): Context: I have an application which can toggle from 2DMap to 3Dscene and vice versa. I call Layer::fullExtent() of all 3 basemapLayers to combine them and get the extent of all basemaps. This i done directly connected to Map/Scene::doneLoading. Effect: Sometime the fullExtent (Envelope) is empty or xmin, xmax, ymin and ymax are nan (not a number). This happens related to the 2nd and 3rd basemapLayer. Possible cause: I assume that the extent is cached on first request - even if the layer is not loaded yet. Workaround: I skip the call to Layer::fullExtent() if the loadStatus is not loaded yet - works Maybe someone can have a look into the code!? Thx
... View more
12-18-2018
04:47 AM
|
0
|
5
|
1253
|
|
POST
|
Qt 100.4.0: Qt 100.4.0: Issues resolved BUG-000103765 The << operator outputs incorrect value for Geometries
... View more
11-08-2018
06:44 AM
|
0
|
0
|
767
|
|
POST
|
Hi! I want to get the debug symbols for V100.4. This time the ESRI support was able to deliver the data within a few hours - great! Norbert
... View more
11-08-2018
05:18 AM
|
1
|
1
|
3402
|
|
POST
|
Hi Luke! Thank you for your answer. As describes i need not just the basemapListModel. More important are the (basic) services listed under "My Content" if i login as portal user (admin). There are my services of type Map Image Layer -> used as basmap Scene Layer (Scene Layer Package) -> containing the 3D model Elevation Layer -> for 3D visualization and displaying the elevation of current mouse position Is it correct that this service list can´t be retrieved using the SDK? Is there another? Thx
... View more
10-14-2018
11:27 PM
|
0
|
4
|
1992
|
|
POST
|
Hi Paul! What is the sense behind cutting a polyline by a single point? Is the single point an element of that polyline? If so you can access all points of a polyline using ImmutablepartCollection Polyline::parts() Immutablepart ImmutablepartCollection::part(index) Point Immutablepart::point(pointIndex) polyline.parts().part(0).pointCount() // pointCount of first part Maybe the operator== is not sufficiant, give qFuzzyCompare a try.... Hope it helps 🙂
... View more
10-12-2018
05:38 AM
|
0
|
1
|
2738
|
|
POST
|
So, using http://XXX.de/arcgis i can connect to the portal anonymously. After load and fetchBasemaps(), fetchFeaturedGroups(), fetchFeaturedItems(), fetchHomepageFeaturedContent() i can get the according model. But the model content is not as expected: FeaturedGroup contains just one entry: 'Featured Maps and Apps'. But i have added "MyBasemap". Using the browser i can see at the they have same parameter: Status == Public Basemaps contains 2 entries: with empty name, but an url. These 2 urls match the 2 entries at "MyBasemap" Maybe i have to use login credentials? Therefore i updated the ssl certificates. Result: errorCode 25, related to SSL... What is my long term goal? get the swatch image of a (map) service (tile service used as basemap) and similar get a list of available services (so the user can select one or more as basemap and update the config file for our application) Any hints?
... View more
10-12-2018
03:34 AM
|
0
|
6
|
1992
|
|
POST
|
I got it: I was using an url like this: http:/XXX.de Correct is: http://XXX.de/arcgis Consulting explained that the webadapter of our own portal uses "arcgis" by default. So he suggested to add "/arcgis" This fact should be noticed in the doc right!? Thx
... View more
10-12-2018
01:24 AM
|
0
|
0
|
1992
|
|
POST
|
Hi Luke! I use my own map example to load an arcgisonline basemap tu guarantee that internet access is working. In the same example i configure this portal url without credentials: new Esri::ArcGISRuntime::Portal(QStringLiteral("http://www.argis.com")); or new Esri::ArcGISRuntime::Portal(QStringLiteral("http://www.argis.com"), false); After a few seconds: 2018-10-10 11:39:27.096 ERROR Portal |#| void SituationMap::Portal::onPortalDoneLoading(const Esri::ArcGISRuntime::Error &) Portal -> EsriError occured: Esri::ArcGISRuntime::Error: code=404, domain=0, extendedErrorType=0, message='Error transferring https://www.argis.com/sharing/rest/portals/self?f=json - server replied: Not Found', additionalMessage='Error transferring https://www.argis.com/sharing/rest/portals/self?f=json - server replied: Not Found' (SituationMap/Portal/portal.cpp:141) 2018-10-10 11:39:27.096 ERROR Portal |#| void SituationMap::Portal::onPortalErrorOccurred(const Esri::ArcGISRuntime::Error &) Portal -> EsriError occured: Esri::ArcGISRuntime::Error: code=404, domain=0, extendedErrorType=0, message='Error transferring https://www.argis.com/sharing/rest/portals/self?f=json - server replied: Not Found', additionalMessage='Error transferring https://www.argis.com/sharing/rest/portals/self?f=json - server replied: Not Found' (SituationMap/Portal/portal.cpp:132) Is this maybe also not implemented on linux?
... View more
10-10-2018
02:42 AM
|
0
|
9
|
1992
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 10-05-2023 05:17 AM | |
| 1 | 03-14-2023 06:54 AM | |
| 1 | 02-24-2023 03:58 AM | |
| 1 | 06-29-2022 06:12 AM | |
| 1 | 03-12-2021 01:31 AM |
| Online Status |
Offline
|
| Date Last Visited |
04-29-2024
11:30 AM
|