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?

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())
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.