Convertir coordenadas de lienzo a la posición de pantalla [cerrado]

8

Tengo un punto, que tiene coordenadas de mapa (lienzo) y sería genial tener su posición en la pantalla. Necesito esto para configurar la posición del cursor en el mismo lugar, donde se encuentra el punto.

¿Conoces alguna forma de convertir estas coordenadas?

DIV
fuente

Respuestas:

7

Creo que algo como lo siguiente podría funcionar en el que necesita transformar las coordenadas de su mapa en coordenadas de pantalla usando QgsMapTool :: toCanvasCoordinates . Seleccione un punto en su capa y luego ejecute lo siguiente en la Consola Python :

from qgis.gui import QgsMapTool
from PyQt4.QtGui import QCursor

layer = iface.activeLayer()
for f in layer.selectedFeatures():
    geom = f.geometry()
    point = QgsMapTool(iface.mapCanvas()).toCanvasCoordinates(geom.asPoint())
    transformed_point = iface.mapCanvas().mapToGlobal(point)
    QCursor().setPos(transformed_point.x(), transformed_point.y())
José
fuente