|
POST
|
You can do this, but not easily at the moment. With Update 5 (due out around Dev Summit 2019), we will have an entirely new Multilayer Symbol API where you can design complex symbols that are made up of many different layers. For example, the outline is one layer that makes up a polygon, and you could choose to use marker symbols on the outline, which would place the marker at each vertex of the polygon. If you absolutely need to do this with 100.4, you still can, but you can't define the symbol in code - rather, you'll have to design the symbol in Pro, share a Mobile Style File, and then consume the style file and obtain the symbol from that. I wrote a blog post on this in the past, where I am creating a custom pro symbol and then obtaining it in Runtime. It is C++, but the API is pretty much exactly the same, so you should get the general idea - https://community.esri.com/community/developers/native-app-developers/arcgis-runtime-sdk-for-qt/blog/2017/11/01/using-custom-pro-symbols-in-arcgis-runtime
... View more
12-21-2018
06:54 AM
|
1
|
2
|
2470
|
|
POST
|
Great question, Norbert. I had to reach out to our 3D rendering team. It is quite complicated, but the short answer is that the behavior is intended. I will do my best to answer why that is below. MapView is a bit different than SceneView because MapView shows an infinite flat world map (with wrap around), whereas SceneView attempts to create an illusion of real-life perspective view (i.e. looking through a window). SceneView has a concept of "Field of View" (FOV), where 45 is considered an average non-distorted view. The allows changes in the window size to affect the FOV angle, which can lead to a very narrow "telescopic" view or very wide "fish-eye" view, which would be distorted. Because of this, we have slightly differing UX to account for these types of window size changes. You will see a similar UX in ArcGIS Pro where scale isn't guaranteed to stay the same as you change window size. Hope that helps provide some insight as to why it behaves this way.
... View more
12-20-2018
11:01 AM
|
1
|
1
|
1504
|
|
POST
|
Hmm, there shouldn't be any relation between the load status of one layer and the full extent of another. I guess your code will skip out on any that are not loaded or are a nullptr, but ideally you could wait until everything is loaded (or has reached another deterministic state, like failed to load) before you create your union of all the geometries. Similar to the concept of Promises in javascript - not sure what the best way in C++ is to wait until several events fire before you proceed with some block of code. Maybe something similar to: Geometry unionedGeom;
for (int i = 0; i < model->size(); ++i)
{
auto lyr = model->at(i);
if (lyr.loadStatus() == LoadStatus::Loaded)
{
unionGeom = GeometryEngine::unionOf(lyr.fullExtent, unionedGeom);
}
else
{
connect(lyr, &Layer::doneLoading, [this, unionedGeom](Error e)
{
unionedGeom = GeometryEngine::unionOf(lyr.fullExtent, unionedGeom);
});
}
}
... View more
12-20-2018
08:38 AM
|
1
|
0
|
1843
|
|
POST
|
I can´t get correct fullExtent if i performed the call to early! That is strange behavior indeed... Can you try modifying your code so that you explicitly wait for doneLoading to emit for all of your Basemap objects before trying to access the extent?
... View more
12-19-2018
07:01 AM
|
0
|
2
|
1843
|
|
POST
|
Matt- Qt introduced automatic scaling a few releases back. It requires you to set a value in C++ - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); More details on that here - High DPI Displays | Qt 5.12 I'd suggest posing this question in the AppStudio space. They likely have enabled high DPI scaling for you in some way without needing to set anything in C++.
... View more
12-19-2018
06:46 AM
|
0
|
1
|
2854
|
|
POST
|
delete that import along with the scalefactor line, and all references to scalefactor. it isn't really needed anymore and our new update of the sample removes it
... View more
12-18-2018
02:27 PM
|
0
|
3
|
2854
|
|
POST
|
Got it. AppStudio builds and runs the samples differently without having the actual compilers installed on the machine. These sample projects themselves are not setup with AppStudio .qmlproject files. However, the code itself is the same and will still work. I'd suggest creating a new app in AppStudio and then copying the following code into it: arcgis-runtime-samples-qt/TakeScreenshot.qml at master · Esri/arcgis-runtime-samples-qt · GitHub
... View more
12-18-2018
01:46 PM
|
0
|
5
|
2854
|
|
POST
|
Are you using AppStudio? Or are you using the Runtime SDK and Qt installed standalone? If using the Runtime & Qt directly, did you follow the install and setup guide? Sounds like you are missing the Visual C++ Compiler Install and set up on Windows—ArcGIS Runtime SDK for Qt | ArcGIS for Developers
... View more
12-18-2018
01:35 PM
|
0
|
7
|
2854
|
|
POST
|
My mistake - I do see it now - Attachment (Feature Service)—ArcGIS REST API: Services Directory | ArcGIS for Developers If you are seeing incorrect behavior where the wrong MIME type is used, I'd suggest logging a bug with Esri support, as the behavior you explain is not expected - https://support.esri.com/en/contact-tech-support
... View more
12-18-2018
12:38 PM
|
0
|
0
|
1472
|
|
POST
|
No need to use the Print Server. We have the ability to take a screenshot directly on the GeoView via exportImage(). Here are the QML and C++ samples for this arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_QMLSamples/Maps/TakeScreenshot at master · Esri/arcgis-runtime-samples-qt ·… arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_CppSamples/Maps/TakeScreenshot at master · Esri/arcgis-runtime-samples-qt ·…
... View more
12-18-2018
11:19 AM
|
0
|
9
|
2854
|
|
POST
|
Norbert- Nice to hear from you. You mention you wait until the Map/Scene are loaded. How about the actual Layer in the basemap layers? Have you ensured that those are loaded before you try to access the fullExtent of them?
... View more
12-18-2018
07:35 AM
|
0
|
4
|
1843
|
|
POST
|
As far as I can see, it seems like this is not exposed on the feature service REST interface. I'm looking into why there are differences. Will let you know if I am able to track anything useful down.
... View more
12-17-2018
08:13 AM
|
0
|
1
|
1472
|
|
POST
|
It's not a map (key/value) but a regular list of KmlNodes. Stringifying anything but a JSON object (which this is not) will have adverse effects. For example: for (var i = 0; i < kmlDataset.rootNodes.length; i++) { var node = kmlDataset.rootNodes; if (node.kmlNodeType === Enums.KmlNodeTypeKmlPlacemark) { console.log(JSON.stringify(node.geometry.json)); ....
... View more
12-13-2018
12:44 PM
|
0
|
1
|
4439
|
|
POST
|
That makes sense to me that it is printing out that you have a list of Objects. Instead of printing that out, you will need to loop through all the root nodes and check the node type
... View more
12-13-2018
07:07 AM
|
0
|
3
|
4439
|
|
POST
|
I see the confusion. Our doc is missing some of the inheritance information. What you will want to do is this: - once the KmlDataset is loaded, get the rootNodes. This will give you a list of KmlNodes. KmlDataset QML Type | ArcGIS for Developers - Go through all the nodes and check the kmlNodeType. If it is a KmlPlacemark, get the Geometry directly from that. If it is a KmlDocument or a KmlFolder, that means it is a KmlContainer (and in that case, that has a list of child nodes) KmlContainer QML Type | ArcGIS for Developers - You will have to recursively traverse the entire tree to find all of the KmlPlacemarks in the dataset KmlPlacemark QML Type | ArcGIS for Developers Here is the inheritance hierarchy that is missing from the doc. We will get this fixed up KmlNode KmlContainer KmlDocument KmlFolder KmlGroundOverlay KmlNetworkLink KmlPhotoOverlay KmlPlacemark KmlScreenOverlay KmlTour
... View more
12-12-2018
01:52 PM
|
1
|
1
|
4439
|
| Title | Kudos | Posted |
|---|---|---|
| 3 | 05-27-2026 09:52 AM | |
| 1 | 11-24-2025 10:45 AM | |
| 1 | 07-30-2025 08:26 AM | |
| 1 | 05-15-2025 07:35 AM | |
| 2 | 11-26-2024 01:27 PM |
| Online Status |
Offline
|
| Date Last Visited |
06-17-2026
07:54 AM
|