<div dir="ltr"><div><div>An update regarding this tread.<br><br>I have changed the code of Numerical Digitized (Yey for Open Source!) and now it accepts all sort of DMS coordinate formats, things like:<br><br></div>9.50ºW<br>-9.50º<br></div>9º30'W<br><div>9º30.50'W<br></div><div>9º30'30"W<br></div><div>9º30'30.50"W<br></div><div><br></div><div>and even:<br><br>9º 30' 30.50" W<br><br></div><div>I'm trying to see if the autor of the plugin is interested in integrating the changes in the original plugin.<br><br>Menwhile, if someone wants to see the code, I can send it by email.<br><br></div><div>Best Regards,<br><br></div><div>Alexandre Neto<br></div><div><a href="http://gisunchained.wordpress.com">http://gisunchained.wordpress.com</a><br><br></div></div><br><div class="gmail_quote"><div dir="ltr">Tudorache, Marian <<a href="mailto:Marian.Tudorache@navcanada.ca">Marian.Tudorache@navcanada.ca</a>> escreveu no dia sex, 11/09/2015 às 23:00:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi again,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I think I sent the code with a small bug.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Replace this  line:<u></u><u></u></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        self.__transformation = qgis.core.QgsCoordinateTransform(self.__ prs  , self.__ crs)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">with <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">self.__transformation = qgis.core.QgsCoordinateTransform(self.__ crs , self.__ prs  )<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">let me know if it works.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Marian<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><div><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Tudorache, Marian <br><b>Sent:</b> September-11-15 5:32 PM<br><b>To:</b> 'Alexandre Neto'; Pedro Venâncio<br><b>Cc:</b> QGIS User<br><b>Subject:</b> RE: [Qgis-user] Edit vertex using DMS coordinates Plugin?<u></u><u></u></span></p></div></div></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi Alexandre,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">It is actually not a plugin.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">It is part of an application which launched aside of QGIS to help the users to draw airspaces.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Their requirements are to work on the projected coordinate system with the data stored in world coordinate system but when they add geometries they want to input points in DMS format.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I build a Widget GUI using QtDesigner (see the picture)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">The user enters start point of the line as: <b>DD MM SS.XXX H, DD MM SS.XXX L</b><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Where:<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">DD - degrees<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">MM - minutes<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">SS - seconds<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">XXX - decimals for seconds<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">H - is the hemisphere N or S<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">L - is the W for West and E for East<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Then the drawLine is called  and executes the drawing of the line.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If I have time I will make a plugin. You are welcome to do it if you have more time than me.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Marian<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Alexandre Neto [<a href="mailto:senhor.neto@gmail.com" target="_blank">mailto:senhor.neto@gmail.com</a>] <br></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""><b>Sent:</b> September-11-15 3:58 PM<br></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""><b>To:</b> Tudorache, Marian; Pedro Venâncio</span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""><br><b>Cc:</b> QGIS User<br><b>Subject:</b> Re: [Qgis-user] Edit vertex using DMS coordinates Plugin?<u></u><u></u></span></p></div></div><div lang="EN-CA" link="blue" vlink="purple"><div><p class="MsoNormal"><u></u> <u></u></p><p>Making a plugin might be an idea. Or some improve the numericalvertexedit and numerical digitize plugins.<u></u><u></u></p><p>I will have a look into all your code.<u></u><u></u></p><p>Meanwhile, what is the name of your plugin? It sound useful fot mem.<u></u><u></u></p><p>Thanks<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">A 19h34 Sex, 11 de Set de 2015, Tudorache, Marian <<a href="mailto:Marian.Tudorache@navcanada.ca" target="_blank">Marian.Tudorache@navcanada.ca</a>> escreveu:<u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi,</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I am sorry to interfere in this thread but I think my findings will help you.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I also want to report a possible bug.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I have worked to a plugin which display the coordinate in DMS when the user execute a mouse left click on the map.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">When the geometries are displayed on the projection, the conversion on the fly to DMS does not work properly. </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">To have properly displayed the coordinate in DMS or Decimal degree you need to re-project your data to a coordinate reference system (WGS84 or GRS80, or other).</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">For example: </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">If data is displayed in projection reference system (stereographic in my case) and data is stored in world coordinates system (X and Y).</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">X = -1081940.67048 and Y = 2561405.89514 will be displayed as 140<sup>0</sup>40’13.726 W. <b>There is not such latitude2561405<sup>0</sup>53’42.489 N</b></span><u></u><u></u></p><p><b><span style="color:#1f497d">This is the projection: </span></b>+proj=sterea +lat_0=53.5 +lon_0=-76.0 +k=1 +x_0=0 +y_0=0 +a=6381816.160744 +b=6381816.160744 +units=m +no_defs<u></u><u></u></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span></b><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">The conversion is done by the function toDegreesMinutesSeconds from QsgPoint class.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:red">It looks the function is not able to do to re-projection back to the spheroid. I think this is a bug</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">The function <span style="color:#1f497d">toDegreesMinutesSeconds works properly if it is applied to Decimal degree coordinate.</span></span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">What to be done!</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">First you need to reproject your data by using QgsCoordinateTransform .</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ex.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">crs = qgis.core.QgsCoordinateRefernceSystem(<idCRS>, qgis.core. QgsCoordinateRefernceSystem.InternalCrsId) # if you use a customized coordinate reference system</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">prs = qgis.core.QgsCoordinateRefernceSystem(<idPRS>, qgis.core. QgsCoordinateRefernceSystem.InternalCrsId) # if you use a customized projected reference system</span><u></u><u></u></p><p class="MsoNormal"><span lang="FR-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">transformation = = qgis.core. QgsCoordinateTransform(crs, prs)</span><u></u><u></u></p><p class="MsoNormal"><span lang="FR-CA" style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">#transformation object is used to re-project your coordinates.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">For example:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">point = qgis.core.QgsPoint(X, Y) # X and Y are in world coordinate system meters</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">#apply transformation to reproject your point</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">reprojectedPoint = transformation.transform(point, QgsCoordinateTransform.ForwardTransform)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">print reprojectedPoint #you will get the point in decimal degrees.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">pointDMS = reprojectedPoint. toDegreesMinutesSeconds(3, True, True) #your will get the point in degrees minutes seconds with respect to crs</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">if you want to input DMS data then you have to do the same steps but in reverse:</span><u></u><u></u></p><p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">1.</span><span style="font-size:7.0pt;color:#1f497d">       </span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Convert DMS to decimal degrees;</span><u></u><u></u></p><p><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">2.</span><span style="font-size:7.0pt;color:#1f497d">       </span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Apply QgsCoordinateTransform to decimal degrees so you get X and Y.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">You can build a plugin based on this class. Check out the function drawLine where I input a lat and long in DMS format and write the line geometry in x/y format. If you have write your geometry in lat and long decimal degrees you do not have to apply QgsCoordinateTransform.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">#spam_activate_map_background</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">import qgis</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">from PyQt4 import QtGui, QtCore</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">class LineGeometryDMSInput:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    def __init__(self):</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        self.__prs  = qgis.core.QgsCoordinateReferenceSystem(100006, qgis.core.QgsCoordinateReferenceSystem.InternalCrsId)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        self.__crs = qgis.core.QgsCoordinateReferenceSystem(100000, qgis.core.QgsCoordinateReferenceSystem.InternalCrsId)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        self.__transformation = qgis.core.QgsCoordinateTransform(self.__ prs  , self.__ crs)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    def drawLine(self, lineStartDMS, lineEndDMS):</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        start_Point = lineStartDMS.split(',')</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        end_Point = lineEndDMS.split(',')</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        startLine = (self.fromDmsToDecimal(start_Point[0], 5), self.fromDmsToDecimal(start_Point[1], 5))</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        endLine = (self.fromDmsToDecimal(end_Point[0], 5), self.fromDmsToDecimal(end_Point[1], 5))</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        line_start = qgis.core.QgsPoint(startLine[1], startLine[0])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        line_end = qgis.core.QgsPoint(endLine[1], endLine[0])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        pointGeomStartTransformed = self.__ transformation.transform(line_start, qgis.core.QgsCoordinateTransform.ForwardTransform)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        pointGeomEndTransformed = self.__ transformation.transform(line_end, qgis.core.QgsCoordinateTransform.ForwardTransform)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        layer = qgis.utils.iface.activeLayer()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        latestID = int(layer.featureCount())</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        layer.startEditing()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        caps = layer.dataProvider().capabilities()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        if caps & qgis.core.QgsVectorDataProvider.AddFeatures:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            featureLine = qgis.core.QgsFeature(layer.pendingFields())</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            geom = qgis.core.QgsGeometry.fromPolyline([pointGeomStartTransformed, pointGeomEndTransformed])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            #if your data is stored in geographical coordinate use this </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            #geom = qgis.core.QgsGeometry.fromPolyline([line_start, line_end])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            featureLine.setGeometry(geom)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            layer.dataProvider().addFeatures([featureLine])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        layer.commitChanges()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        layer.updateExtents()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        layer.startEditing()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        qgis.utils.iface.zoomToActiveLayer()</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    def fromDmsToDecimal(self, dmsString, precision):</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        degree = float(dmsString.strip()[:2])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        decimal_minutes = float(dmsString.strip()[2:-9])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        decimal_seconds = float(dmsString.strip()[5:-2])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">    </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        decimal = round(degree + decimal_minutes/60 + decimal_seconds/3600, precision)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        if 'S' in dmsString or 'W' in dmsString:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">            decimal = decimal * (-1.0)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">        return decimal</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks,</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Marian</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:qgis-user-bounces@lists.osgeo.org" target="_blank">qgis-user-bounces@lists.osgeo.org</a> [mailto:<a href="mailto:qgis-user-bounces@lists.osgeo.org" target="_blank">qgis-user-bounces@lists.osgeo.org</a>] <b>On Behalf Of </b>Alexandre Neto<br><b>Sent:</b> September-09-15 8:24 AM<br><b>To:</b> Pedro Venâncio<br><b>Cc:</b> QGIS User<br><b>Subject:</b> Re: [Qgis-user] Edit vertex using DMS coordinates Plugin?</span><u></u><u></u></p></div></div><div><div><p class="MsoNormal"> <u></u><u></u></p><div><div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">I know NumericalDigitize and NumericalVertexEdit, but none of them allows the user to input coordinates in DMS formats.<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">We receive coordinates in many formats, and mostly in some form of Degree, minutes and deciimal Seconds, or Degree, and decimal minutes.<br>Normally I put the coordinates in a CSV and open it in QGIS to import the coordinates. But It would be nicer the be able to add/edit them directly in one of those format instead.<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">I did not know the node edit widget, looks interesting.<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">Thanks,<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">Alexandre <u></u><u></u></p><div><div><p class="MsoNormal">Em qua, 9 de set de 2015 às 12:22, Pedro Venâncio <<a href="mailto:pedrongvenancio@gmail.com" target="_blank">pedrongvenancio@gmail.com</a>> escreveu:<u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><p class="MsoNormal" style="margin-bottom:12.0pt">Hi Alexandre,<u></u><u></u></p></div><div><div><div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><div><div><p class="MsoNormal">Anyone know if it's possible or if there is a plugin that allow one to introduce <u></u><u></u></p></div></div></div></blockquote></div></div></div><div><div><div><div><p class="MsoNormal"><br>Have you tried NumericalDigitize plugin?<br><br><br> <u></u><u></u></p></div></div></div></div><div><div><div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt"><div><div><div><p class="MsoNormal">and modify vertex using introducing Degree, Minutes and Seconds (or any other variation) values.<u></u><u></u></p></div><p class="MsoNormal"> <u></u><u></u></p></div></div></blockquote></div></div></div><div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>For editing, we have in QGIS master the new Node editor widget [0], which has the Vertex editor list (i).<br><br>I don't know if you can work with Degrees, Minutes and Seconds in any of them, but with decimal degrees they work well.<u></u><u></u></p></div><div><p class="MsoNormal">Best regards,<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Pedro Venâncio<br><br>[0] <a href="https://github.com/qgis/QGIS/pull/2217" target="_blank">https://github.com/qgis/QGIS/pull/2217</a> <u></u><u></u></p></div></div></div></div></blockquote></div></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div class="MsoNormal" align="center" style="text-align:center"><hr size="2" width="100%" align="center"></div><p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial","sans-serif";color:gray">This electronic message, as well as any transmitted files included in the electronic message, may contain privileged or confidential information and is intended solely for the use of the individual(s) or entity to which it is addressed. If you have received this electronic message in error please notify the sender immediately and delete the electronic message. Any unauthorized copying, disclosure or distribution of the electronic message is strictly forbidden. NAV CANADA accepts no liability for any damage caused by any virus and/or other malicious code transmitted by this electronic communication.<br><br>Le présent message électronique et tout fichier qui peut y être joint peuvent contenir des renseignements privilégiés ou confidentiels destinés à l’usage exclusif des personnes ou des organismes à qui ils s’adressent. Si vous avez reçu ce message électronique par erreur, veuillez en informer l’expéditeur immédiatement et supprimez le. Toute reproduction, divulgation ou distribution du présent message électronique est strictement interdite. NAV CANADA n’assume aucune responsabilité en cas de dommage causé par tout virus ou autre programme malveillant transmis par ce message électronique.</span><u></u><u></u></p></div></blockquote></div></div></div></blockquote></div>