I've got a layer in QGIS that is comprised of points. Its attribute table doesn't have (show) the corresponding x and y coordinates for each point. Is there a way for me to extract a list of coordinates for those points? (ideally into a CSV, but not required)

Also, for the exported list of coordinates (say, in a CSV file), how do I include the existing attribute table with it?

For your information, I am running QGIS on Mac OS X 10.6.7.


Depending on your version, you should be able to right-click on the layer you want to export, and select Save As... Choose Comma Separated Value from the dropdown list of the dialog box that appears. Then, in the Layers part of the OGR creation options, type GEOMETRY=AS_XY or GEOMETRY=AS_XYZ depending on the dimensionality of your source data.

QGIS Save vector layer as... dialog

| improve this answer | |
  • That's great and it works! One more thing: Can I also export columns I already have in the original layer's into the CSV, along with the X, Y coordinated? Thanks. – hpy Apr 22 '11 at 16:34
  • 2
    Cool, glad it works! Make sure you have the "Skip attribute creation" checkbox unchecked. I'm not a fan of negative checkboxes like that, it always makes me think twice about what state I need it in. – MerseyViking Apr 22 '11 at 20:28
  • Very useful tips! – Heinz Jun 11 '13 at 9:27
  • For anyone else on Windows 10 (QGIS 4.3.1) confused about where this gets saved, check your "C:\OSGeo4W64\bin" folder. – Wassadamo Jan 11 '19 at 21:03

It is simple in the attribute calculator you may use $x and $y to calculate your coordinates into a new attribute.

| improve this answer | |
  • Is it possible to get the X Y in different coordinate system? I mean the XY of my points is in WGS 84 but I would like to list the XY values in different coordinate system in my attribute table. – Petr Nov 27 '19 at 13:46

You may like this for the added detail which is gathered

For QGIS 1.7 on Win7 I open the attribute table for the layer, use the buttons to; invert selection to select all rows, copy to clipboard

and paste into Excel. The first column contains Well Known Text information which maybe more useful to you.


I now use the plugin mmqgis to export geometry to csv, it is more desired by CAD users at the other end...

| improve this answer | |
  • BWill, should we merge your other account @Willy? That would help your reputation and simplify your interactions here. – whuber Apr 13 '12 at 14:42
  • Restored original edit. – Kirk Kuykendall Apr 16 '12 at 14:33
  • When copying from the attribute table and pasting into Excel, sometimes a feature will occupy multiple rows, and this results in overwriting any data in the row below. – csk Feb 26 '18 at 19:30

Virtual layers enables you to do exactly that. It is an icon on the Layers Toolbar or you can go Layer->Add layer->Add/Edit Virtual Layer...` Then you will face a window like the one below:

enter image description here

In the Query you can select geometry properties like x and y cooridnates and attributes values from the Attribute Table, like the id in the example.

Once you have a table with the desired fields, you can use save asand select csv as a format.

enter image description here

The underlying engine uses SQLite and Spatialite to operate, so the documentation for the queries could be found here: https://www.gaia-gis.it/fossil/libspatialite/wiki?name=misc-docs

| improve this answer | |

I asked a similar question a few weeks ago as Calculating latitude and longitude of points using QGIS. It's only true for QGIS 1.7 though (which I'm running on OSX and it seems quite stable).

| improve this answer | |

for your question if you have postgressql and built-in postgis you can do this adding new column which is named coord_x and coord_y. and sql to update this column is:

UPDATE table_name
      SET coord_x = X(the_geom),coord_y = Y(the_geom);

that is it :)

| improve this answer | |

How to add coordinates to attribute table
I was looking for an answer to the first part of the question as I just wanted to see the coordinates in QGIS. The information above helped me work out a solution so I am posting for other QGIS beginners. I am using Windows10 and QGIS 3.4

  1. Open Layer Properties
  2. Select Source Fields (initially only id existed)
    enter image description here
  3. Select Field Calculator
  4. Select Create new field, enter name and choose decimal number as Output field type
  5. Choose Geometry on lower right list

enter image description here
6. Select $x for x coodinate and save
enter image description here
7. Repeat by selecting $y for y coordinate and your coordinates will appear in the attribute table.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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