|
POST
|
Hi Geet Bhatia, Yes, there is a way to do this. Assuming you are in 3D with a SceneView, you can use the Surface object to do this. Better yet, this method is already asynchronous so it will not lock up your main thread for the calculations. Surface Class | ArcGIS for Developers Here is a sample that demonstrates how to do this. arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/Scenes/GetElevationAtPoint at master · Esri/arcgis-runtime-sampl… Let me know if you're using our Qml Api since that would be a different recommendation.
... View more
03-03-2020
01:26 PM
|
0
|
2
|
1357
|
|
POST
|
Girishchandra Y, if you can pull the tile bytes out of the mbtiles file then we should be able to read it. We will not be able to process anything from that file directly.
... View more
03-03-2020
09:53 AM
|
0
|
2
|
2372
|
|
POST
|
Girishchandra Y, I had initially replied that it cannot be done, but in fact this can be done. We provide a method on the ImageTiledLayer base class to provide a QByteArray of data for the tiles. You should be able to use this method to load your images directly from the database. ImageTiledLayer Class | ArcGIS for Developers Sorry for the confusion. Let us know if that works for you.
... View more
02-25-2020
09:21 AM
|
1
|
4
|
2372
|
|
POST
|
Hi Girishchandra Y, Yes, we support both OpenStreetMap (online) and loading local tiles from disk. OpenStreetMapLayer Class | ArcGIS for Developers Also, if you want to use your own, local tiles from disk, please see this section from our documentation on how to do that. ImageTiledLayer Class | ArcGIS for Developers Please let us know if this answers your question.
... View more
02-24-2020
11:02 AM
|
0
|
6
|
2372
|
|
POST
|
Thanks for confirming the problem with the error message. Another potential option for you would be to implement a legend with visibility toggles to switch layers on and off. arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/Layers/ChangeSublayerVisibility at 37f29d3634a2ee71933836e6546c5… arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_QMLSamples/Layers/ChangeSublayerVisibility at 78dd6bd4f72aa8343ad3a8259934d… Using that method you could control how much was displayed at any given time. That might also help, but unfortunately we do not have any way to programmatically release the open file handles.
... View more
02-07-2020
07:42 AM
|
0
|
1
|
2214
|
|
POST
|
anshu shrivastava, Unfortunately the team cannot help with debugging, but I can outline the workflow without code to indicate how it should be working. 1. Load both mmpk files. 2. Set the first mmpk's Map to the MapView. 3. For the second one, pull the layers out of the map and store them locally. 4. Re-parent the layers (very important) - without this step they will get deleted with the map they came from. 5. Delete the second map - this should free up the layers to be displayed in a different map. Layers cannot be part of two different maps at the same time - this is why the second map must be deleted. 6. Add the set of layers to the MapView's map (which is from the first mmpk loaded). It does look like your code is following this pattern, but double check you've not missed something minor along the way. Another potential solution (and I use that phrase loosely), is that the Map object is JsonSerializable. You could call map->toJson() to get the serialized text of each map. Within the text it will contain an operationalLayers tag with the serialized data for all the layers. You could use this information to build up a map from the first map's Json, but with the second map's operationalLayers text added to it. With that serialized data string, you could create a map from json, see Map::fromJson. operationalLayers | ArcGIS for Developers Map Class | ArcGIS for Developers Let us know if this helps.
... View more
02-07-2020
06:01 AM
|
1
|
0
|
2555
|
|
POST
|
Michal Stolba, >Can anyone confirm this is really the case? Is the ImageTiledLayer keeping open file handlers? Yes, ImageTiledLayer will keep open file handles but I cannot confirm that is the exact problem you are hitting. Can you post any stack trace or logging messages? We have seen messages like this before in cases like this. Error: code = 1, TIFFOpen:/Users/James/Raster/renderer/rgb/po_311944_pan_0000001.tif: Too many open files Can you let us know if you see anything like that? >- If so, can we somehow determine how many? Is it one per tile, or one per layer? I don't have a specific number I'm afraid. >- Also is there any way how to force the layer to close the file handlers after loading the tiles? That can be tricky. If you can force the objects to destruct, it can release the file handles. That can be done in our C++ API, but is much trickier in the QML Api due to garbage collection and not being able to deterministically destroy objects. A potential alternate workflow would be to limit the scale range of layers to a specific extent so it will not attempt to load so many tiles at the same time as you pan/zoom the map. That may give a better chance at success.
... View more
02-06-2020
01:22 AM
|
1
|
3
|
2214
|
|
POST
|
anshu shrivastava, Ok, in that case there are a few options. I must say, this is not ideal as the Map should contain all its respective data and layers to begin with. Option 1: unpack the mmpk to disk and create all the layers programmatically. When you unpack the mobile map package, it will (or may) contains tpk and possibly geodatabase files that can be used to load and create all the layers from those files. MobileMapPackage Class | ArcGIS for Developers Option 2: "take" the layers from one map and place them in the other map. This will only work if one of the maps is destroyed. In this case, you will load both mobile map packages like in your sample, but for one of the maps you will change the workflow as follows: path1 = "/home/Gis/ChartEngine/Arcgis/Runtime/Data/MMpk/India.mmpk";
path2 = "/home/Gis/ChartEngine/Arcgis/Runtime/Data/MMpk/Pak.mmpk";
MobileMapPackage *m_mobileMapPackage1 = new MobileMapPackage(path1, this);
connect(m_mobileMapPackage1, &MobileMapPackage::doneLoading, this, [this](Error) {
m_mapView->setMap(m_mobileMapPackage1->maps().at(0));
m_mobileMapPackage2->load();
});
MobileMapPackage *m_mobileMapPackage2 = new MobileMapPackage(path1, this);
connect(m_mobileMapPackage2, &MobileMapPackage::doneLoading, this, [this](Error) {
auto* map2 = m_mobileMapPackage2->maps().at(0));
QList<Layer*> layersFromMap2;
for (auto* layerFromMap2 : *(map2->operationalLayers()))
{
layersFromMap2.append(layerFromMap2);
layerFromMap2->setParent(this); // re-parent the layers
}
// delete the map
delete map2;
// add all the layers to the mapView's map
auto* operationalLayers = m_mapView->map()->operationalLayers();
for (auto* layer : layersFromMap2)
operationalLayers->append(layer);
});
m_mobileMapPackage->load();
This is pseudo code and may have some errors, but this is the general workflow. Please let us know if this works. In both cases, the ordering of the layers may not be preserved properly so you may need to adjust which order the layers are added in.
... View more
02-04-2020
10:11 AM
|
1
|
3
|
2555
|
|
POST
|
Hi anshu shrivastava, Each MapView has only one Map. The preferable solution here would be to author the data so that all the operational layers and data are within the same Map to begin with, and then to load that Map into the MapView. Are you able to re-author the data?
... View more
02-03-2020
07:17 AM
|
1
|
1
|
2555
|
|
POST
|
Thanks Christian Ehrlicher. I am also unclear on why libQtCore5.so exports and defines this symbol. If you do figure out why this is, I would be interested in knowing as well.
... View more
01-28-2020
10:56 AM
|
0
|
0
|
13740
|
|
POST
|
Norbert Thoden, >For me it´s not really clear: >You are using the Qt from the Company (and not the one shipped with SUSE distribution) but did not build it? >Can you please explain in detail what you did? Sorry, I will clarify. We download the commercial version of Qt and use that with our builds. We do not build the Qt Company's SDK for our builds precisely to avoid these types of version and compiler incompatibility. We build our SDK libraries with the same build configuration as the Qt Company for 5.12: Supported Platforms | Qt 5.12 Red Hat Enterprise Linux 7.4 and using GCC 5.3.1 via the devtoolset-4. I did some more digging and it looks like that symbol is actually defined by the QtCore library, which I find very odd. nm /applications/Qt5.12.6/5.12.6/gcc_64/lib/libQt5Core.so.5.12.6 | c++filt | grep "operator delete" | grep "unsigned long"
0000000000396fa0 T operator delete[](void*, unsigned long)
0000000000396fb0 T operator delete(void*, unsigned long) And I can see that these are getting resolved at runtime to the Qt library as well. I cannot explain why this Qt library would define operator delete, but it does and we are resolving it from that library. LD_DEBUG=bindings ./testApp
...
binding file /applications/Qt5.12.6/5.12.6/gcc_64/plugins/platforms/../../lib/libQt5DBus.so.5 [0] to /applications/Qt5.12.6/5.12.6/gcc_64/lib/libQt5Core.so.5 [0]: normal symbol `operator delete(void*, unsigned long)' [Qt_5] As you found, libQt5Core.so.5 provided with the SuSE version of Qt that you are using does not provide that symbol, so it is getting resolved elsewhere. My recommendation is to check with SuSE to see if they are building Qt differently than the standard configuration. Another option is to download Qt directly from the Qt Company. As a quick test, I downloaded Qt 5.13.1 directly from https://account.qt.io/downloads and verified that the operator delete in question is defined in their version, so it should be compatible. Let me know if this helps.
... View more
01-27-2020
12:46 PM
|
0
|
0
|
13740
|
|
POST
|
Hi Norbert Thoden, We did not build and test with our own version of Qt. We have tested on SuSE Enterprise Linux 15, but we use the version of Qt from the Qt Company to test and certify with. Our software is built against Qt 5.12.6, but 5.13.1 should work as well. We have occasionally seen this type of problem before, and usually the symptom is there is a second installation of Qt in the system path somewhere that's getting picked up that's a different version than the one we're trying to build and run against. Can you see if that's the case? If you set your LD_LIBRARY_PATH and then run "ldd" on libEsriCommonQt.so, does it pick up Qt libraries from a different location than you expect? Please let us know and we can help troubleshoot the problem.
... View more
01-24-2020
08:37 AM
|
0
|
2
|
13740
|
|
POST
|
Abhijeet Satam, In order to build the symbol you want with the civilian attributes, you will need to use the fetchSymbol method. Please take a look at the documentation for that method, which gives some good explanation of what to do. DictionarySymbolStyle Class | ArcGIS for Developers
... View more
01-21-2020
01:31 PM
|
0
|
0
|
1407
|
|
POST
|
Jeremy Roberts, That question is best suited to the GeoEvent experts over in GeoEvent . They will be able to help with GeoEvent Server specifics. You may be able to leverage the GeoEvent REST api to do what you're wanting, but they will know for sure. We do hope to support GeoEvent server and stream layers in the Runtime soon.
... View more
01-16-2020
01:07 PM
|
0
|
0
|
1423
|
|
POST
|
Jean Lonneux, That sounds like a bug. If you're able, please submit that through Esri support so we can investigate the problem.
... View more
01-16-2020
12:52 PM
|
2
|
0
|
1647
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 4 weeks ago | |
| 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 |
4 weeks ago
|