58

How do I create point features with exact (manually entered) coordinates in QGIS?

I get precise GPS coordinates from a survey team which I need to add to a point layer. What I want: -Add point, type in the coordinates and when pressing enter the point is created where it is supposed to be.

12 Answers 12

31

Use plugin Numerical Vertex Edit (https://plugins.qgis.org/plugins/numericalVertexEdit/). Or create table with Lat/Lon/Name and save in csv, then load csv table in QGIS (Add Delimited text layer) (info gis-lab.info)

18

No Plugin Required

This is possible with QGIS without extra plugins using the Advanced Digitizing panel. This tool allows entering exact coordinate values as well as constructing points at given distance and angle from other points.

Enable advanced digitizing

Enter coordinates

Note:

The advanced digitizing tools are not available in geographic coordinates.

Pictures taken from this excellent answer which gives a walkthrough.

  • @Mathias How do you validate the first point? It's pretty clear how it works once you have the first point. (for both points, lines and polygons). – Nono Nov 4 '16 at 12:34
  • 1
    Does it not work if you just enter coordinates and then click somewhere on the map canvas like you do for subsequent points? – Matthias Kuhn Nov 6 '16 at 16:57
  • NVM, it was probably a friday issue because today it works fine. Ty. – Nono Nov 7 '16 at 12:42
  • 2
    Note: the advanced digitizing tools are not enabled if the map view is in geographic coordinates: docs.qgis.org/2.18/en/docs/user_manual/working_with_vector/… – Lennert Aug 7 '18 at 14:15
  • This doesn't work for geographic coordinates – user32882 May 26 at 11:11
11

You need to install the 'Numerical Digitize' plugin first.

Then you can use Numerical Digitize command to Create points in QGIS with exact (manually entered) precise coordinates.

The Numerical Digitize command is found on the Digitizing tool bar.

Make sure your Toggle Editing is on for the layer you want to digitize (add coordinates to), so that Numerical Digitize button will be active.

You can do this for both point and polygon data.

  • 2
    Does not work with 3D. – Nono Nov 4 '16 at 12:03
6

I prefer HasT's second solution if there are more than a handful of points. Enter coordinates (separate X and Y columns), labels and any other data in your spreadsheet of choice. Save in CSV format and use "Add Delimited Text Layer" to add in your points as a layer:

enter image description here

and a window comes up asking you which columns to use as X & Y coordinates and other options.

Edited to add: see also this tutorial linked at the QGIS Wiki.

  • Thank you for your answers. But if I use csv-import it will end up in a new separate layer. I created some test points just so earlier this morning. Then I have to merge that layer to my existing layer and it feels like an unnatural workaround when it most often isn't more than a handful of points to add. I will look at the Numerical Vertex Edit and see if it is what I am looking for. I still think an option to manually define coordinates when creating new points would be of great added value to QGIS. – Per Engstrom Sep 25 '12 at 11:19
  • Do you need to maintain the data in a shapefile? As you create a set of data, you could view it in QGIS, then export it back to a csv - use MMQGIS export geometery, or copy the data direct from the attribute table. Maintain a list in csv or spreadsheet form which can easily have new points and attributes added. As need be, load that file up via the Add Delimited Text Layer dialog. I do this a bit and it works fine. You need to consider how to keep the integrity of data, which is one reason why adding to an existing file is a good methodology. – Willy Sep 26 '12 at 12:01
  • Does not work with 3D. – Nono Nov 4 '16 at 12:06
6

In QGIS 3, the NumericalDigitize tool no longer seems to be available but here is a further solution. As of QGIS 3 you can simply copy and past WKT directly into the canvas. This works for single or multiple features all in one go eg:

point(543100 177100)
point(543250 206850)
point(561800 206850)

or:

polygon((123456 654321, 123456 765432, 234567 765432, 234567 654321))

This is less fiddly for multiple features than the Advanced Digitize Plugin.

4

No plugin, CAD digitalized or field calculator was necessary for me.

Just put the table in edit mode, add a vector point to the map, then use the Node Tool. You can drag the point with it, or by clicking your point you can edit the coordinates. Good luck !

  • QGIS 3.6 - Put the layer in edit mode, add a vector point, use the Vertex tool, right click on point, edit coordinate in Vertex Editor box. Works with geographic coordinates. – Geoffrey Sinclair Jun 12 at 0:41
2

You could abuse the 'Azimuth and Distance' plug-in to do this. Enter the x and y ordinates in the 'Starting vertex' boxes and press 'Draw'. The point shapefile has to be in edit mode. I'm not sure which repository has this plug-in, but a Google search will find it. If you're entering lat/lon coordinates remember that lat is 'y' and lon is 'x'. N.

  • Another way of doing it would be to first enter the measured coordinates in a spreadsheet, save it as .csv and import it to a separate layer and then snap-add new points in the live layer to the temorary one just imported from the csv-table. It works, but again, in my humble opinion, it is a lot of work just to add some points where I want them. The reason I am interested in solving this issue is because I am curious to see if I can introduce QGIS at my workplace. I use n and e as in northing and easting to avoid confusion when different programs defines x and y differently. Thanks again! – Per Engstrom Sep 26 '12 at 11:52
2

Another option is to use QGIS's virtual layer functionality. Just click the 'Add Virtual Layer' icon near the bottom of the left hand tool bar and enter the following into the query window (subbing your values for the parameters in the MakePoint function):

SELECT 1 as id, MakePoint(x, y, srid) as geom

If you want to create multiple points this syntax can be used:

SELECT 1 as id, MakePoint(x1, y1, srid) as geom
    UNION
SELECT 2, MakePoint(x2, y2, srid)
1

The plug-in Lat Lon Tools comes with a points digitizing tool called "Lat Lon Digitize" that lets you easily achieve this. Once activated, the corresponding button appears in the Digitize toolbar and looks like this:

LatLonDigitize

Simply have a look at the plug-in's official README, section "Points Digitizing Tool", to get started (actually, the whole process is rather self-explaining).

  • "Lat Lon Digitize" tool in QGIS 3.2 works only with "point shapes" but not with "multipoint shapes" is this ok? – Vitruvius Jun 25 '18 at 12:42
0

What format do your surveyors use to give you their data? Ours can give me a .dxf file which I can drag onto the QGIS canvas.

That contains points, lines and polygons, so I am asked what I want to import. I can select them all and QGIS gives me three files. I simply save the points layer into a shape file and I have all the exact points I need.

0

I know it's an old entry, but this was a recurring issue also for me. Finally I have found a solution without plugins or the need of an externally edited CSV file. It's based on the Field Calculator and I have tried in QGIS 3.0.0

  1. If you don't have yet, create a new point layer. Even a temporary/scratch layer is fine.
  2. Add fields for X, Y coordinates and possibly other attributes.
  3. Add features, setting at least the coordinate attributes. At this point these features will have no geometries.
  4. In the field calculator select to update the and use the make_point_m function. For example, if the coordinates have been stored in coord_X and coord_Y field, use:

make_point_m( "coord_X" , "coord_Y", 0)

0

Another way: If you have the GPX file, just move into your QGIS window. Then add "waypoints".

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.