AnsweredAssumed Answered

Qt and ArcGIS Runtime SDK - Help, Advice and Best Practices

Question asked by kevinwebster83 on Nov 2, 2017
Latest reply on Nov 7, 2017 by kevinwebster83

I'm looking to upgrade an existing Qt Widgets application which allows the end user to track sub-sea assets, displaying the tracking data on a display supporting ENC nautical charts (S-57 and S-63).


Having downloaded and installed the ArcGIS  Runtime SDK for Qt as well as reading through the comprehensive development guides and SDK reference, I'm looking for some help and advice with various features and aspects of the existing application which I want to migrate across to ArcGIS.


Also, as this is my first foray into the ArcGIS world, I'd be grateful of best practice advice where possible.


The features I'm looking to implement are:


1. Allowing the end user to measure distances on the ArcGIS map. The user presently clicks on the display (capturing the starting coordinate) and drags (capturing the end coordinate) the mouse which then draws a line on the display with an indication of the distance this line represents (in metres or some other unit) as well as bearing from the start to the end points. 


Q: What would be the best way of capturing the mouse positions, converting to a WGS-84 (or other spatial reference) and then working out distances as well as drawing the measurement line? Would this need to be done in a layer?


2. The end user can place many geographically position "markers" or a "waypoints" which are saved to a local settings file and loaded and drawn when the application starts.


Q: Presumably, this is done using the SimpleMarkerSymbol class and I would need to add these "markers" to their own layer?


3. Drawing of ENC nautical charts (vector, raster or GeoTIFF) onto an ArcGIS map. We have any existing 3rd party software package responsible for the drawing of the ENC chart onto a Windows device context. Presently, the chart is drawn onto a HBITMAP which is then drawn onto a surface via QPainter.


Q: Is there an ENC aspect to ArcGIS which we could make use of within the Qt Runtime SDK? This would at least mean we do not need a 3rd party module. If not, I would need to render the ENC chart onto a bitmap and presumable, this would also be done on another graphical layer? Would there be a better way to do this?


4. Rather than use a MapGraphicsView (inheriting from QGraphicsView), I'd look to implement a MapGraphicsWidget (inheriting from QWidget) and I've seen reference to this in the documentation somewhere but can't actually find anything more concrete. This would help with our internal Widget framework and support libraries we have.


Q: No idea where to start with this. 


Obviously, I'm not looking for source code or fully worked examples for the above. For example, I have found a way of capturing the mouse cursor position as a Point and then converting it to a WGS-84 latitude longitude.


What I ultimately need is a bit of advice with regards to the "best way" to implement these features in ArcGIS. Like I mentioned at the start, I'm very new to ArcGIS (like 2 days worth of experience) and having sifted through the many examples, I'm trying to figure out what I need to do to make ArcGIS work for me in the best possible way.


Thanks in advance for any advice or tips.