<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>My next project with Shape Tools is to add a geodesic move and rotate tools as well as interactive geodesic shape creation of the existing Shape Tools shapes.<br></div><div><br></div><div>Normally I would start with QgsMapTool class and work from there, but QGIS 3 seems to have implemented a nice node and outline with the Shape Digitizing Tools. Can I hook into that work? For shape creating what I would like to do is to click and release on the map and as the cursor moves calculate the geodesc shapes based on the geodesic distance from the clicked point and the current cursor point. Once I click again then the shape is created. For some of the shapes I would need a popup window to adjust one or two parameters. During the highlight mode, after each motion even, I would need to update all the node positions based on the current geodesic distances and bearings.</div><div><br></div><div>The reason for geodesic move and rotate tools is because the current one works with the local layer units and if that happens to be degrees strange results happen. With the new geodesic move and rotate tools I would like to be able to select the shape like the current tools do, calculate the centroid and then move and rotate each vertex according to geodesic distances.</div><br><div>
I could do all this just with working with the QgsMapTool class, but I 
would prefer trying to hook into the existing shape drawing API as it would provide the same look and feel. 
It looks like there are the following classes: QgsMapToolCapture, QgsMapToolAdvancedDigitizing, QgsMapToolEdit. Which should I use? I need full control of each node after each cursor move.<br></div><div><br></div><div>Thanks,</div><div><br></div><div>Calvin<br>

</div><div><span style="color:rgb(0,0,0);font-family:Roboto,sans-serif;font-size:35px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(249,252,249);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><span></span></span>

</div></div></div></div>