7

I have a point layer, that I'd like to return the Longitude, latitude using the QGIS API and Python.

How do I use QgsPoint to do that?

8

This works on the latest release 'Tethys'.

The point layer that I am interested in is the first layer in my layer list. The coordinate values will be in the units of the spatial reference system of the layer. If your layer is in lat/lon, remember that x=lon and y=lat...

Open the Python Console and type this:

from qgis.utils import iface

feat = QgsFeature()
mc = iface.mapCanvas()
layer = mc.layer(0)
provider = layer.dataProvider()
provider.select()

while(provider.nextFeature(feat)):
    geometry = feat.geometry()
    print "X Coord %d: " %geometry.asPoint().x()
    print "Y Coord %d: " %geometry.asPoint().y()
    print
7

This requires your layer to be in a projection using lat/lon to return geographic coordinates:

provider = layer.dataProvider()
feat = QgsFeature()
while(provider.nextFeature(feat)):
    geom = feat.geometry()
    x = geom.asPoint().x()
    y = geom.asPoint().y()

(taken from Points2One Plugin by Pavol Kapusta & Goyo Diaz)

Not the answer you're looking for? Browse other questions tagged or ask your own question.