Leinwandkoordinaten in Bildschirmposition konvertieren [geschlossen]

8

Ich habe einen Punkt, der Kartenkoordinaten (Leinwandkoordinaten) hat, und es wäre toll, seine Bildschirmposition zu haben. Ich benötige dies, um die Cursorposition an derselben Stelle zu setzen, an der sich der Punkt befindet.

Kennen Sie eine Möglichkeit, diese Koordinaten umzuwandeln?

DIV
quelle

Antworten:

7

Ich denke, so etwas könnte funktionieren, wenn Sie Ihre Kartenkoordinaten mit QgsMapTool :: toCanvasCoordinates in Bildschirmkoordinaten umwandeln müssen . Wählen Sie einen Punkt in Ihrer Ebene aus und führen Sie in der Python-Konsole Folgendes aus :

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())
Joseph
quelle