AnsweredAssumed Answered

Roadmap for Runtime SDK - Quartz and C++/QML interoperability

Question asked by magrqt on Mar 30, 2016
Latest reply on Mar 30, 2016 by LDanzinger-esristaff

@Hi Luke, after some interesting tests with MapQuickItem, I’m wondering what exactly Quartz will allow about the forthcoming QQuickItem MapView (you said “which will allow you to create your UI in QML, and write all of your business logic in C++” and “Quartz will officially support this pattern”). Will we be able to create the app in QtQuick, adding the map and all other features (such as geometry, graphic layers, feature layer, etc.) with the Runtime SDK QML API, handling them as objects with JavaScript (and C++ of course), and, if required, extract a C++ reference to the map that actually is a C++ object as defined in the Runtime SDK C++ API, and programming it using such API (and the other way round too)? And, if this is the case, will we be able to handle this way just the map object or other breed of objects too, such as GraphicsLayer, Graphic, Symbol, Geometry, and so on? This would allow passing object references smoothly between the two API (QtQuick and C++), which the current SDK doesn’t support (the release note says “Interoperability between identical object instances from both the C++ and QML APIs is not supported. For example, passing a Point geometry object from QML to C++ and performing geometry operations on that Point in C++ is not supported”). Stated another way, will Quartz allows exactly that, interoperability between identical object instances from both the C++ and QML APIs?

Thanks for the valuable support you are giving us in planning our project.



P.S. - I'm sorry I had to open a new discussion, since the system didn't allow me to reply to your last comment.


Hi Marco,

Glad to clear things up. You are very observant and resourceful! Our QML API at 10.2.6 was built directly on top of the C++ API, and so we needed to expose the MapQuickItem. This was supposed to be an internal class for our QML API build to pick up (which is why you don't find the header in the public SDK), but we accidentally included it in our doc build, so you see it there. This was not intentional, so if you are able to get something to work, I would say that is impressive, but we may not be able to assist you if problems arise. Quartz will officially support this pattern, and I think you will find it to be very easy and straight forward.