92

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.

1

13 Answers 13

53

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 walk through.

5
  • 2
    @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
    Commented Nov 4, 2016 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? Commented Nov 6, 2016 at 16:57
  • NVM, it was probably a friday issue because today it works fine. Ty.
    – Nono
    Commented Nov 7, 2016 at 12:42
  • 3
    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
    Commented Aug 7, 2018 at 14:15
  • 1
    This doesn't work for geographic coordinates
    – user32882
    Commented May 26, 2019 at 11:11
37

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)

0
20

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.

2
  • 5
    Yes! This is the simplest and most painless way to import points and polygons. To clarify, copy the lines of text and then in QGIS menubar, go to Edit > Paste Features As… > New Vector Layer. (Double check that the points are in the coordinate system you're using).
    – Erik Marsh
    Commented Jun 23, 2020 at 19:53
  • 1
    Cool feature! When a layer is focused and being edited, WKT features can simply be pasted into this layer via Ctrl-V. Commented May 23, 2022 at 15:04
15

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.

1
  • 2
    Does not work with 3D.
    – Nono
    Commented Nov 4, 2016 at 12:03
11

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.

3
  • 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. Commented Sep 25, 2012 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
    Commented Sep 26, 2012 at 12:01
  • Does not work with 3D.
    – Nono
    Commented Nov 4, 2016 at 12:06
8

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
  • Neat solution. Thanks. Commented Mar 2, 2023 at 5:43
8

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 !

2
  • 2
    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. Commented Jun 12, 2019 at 0:41
  • To add to the answer, if you need to convert decimal degrees (lat/lon) to whatever units your data is in, in order to enter the new coords into the vertex tool editor, this tool was helpful: epsg.io/transform
    – Kristen G.
    Commented May 5, 2021 at 15:59
3

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).

1
  • "Lat Lon Digitize" tool in QGIS 3.2 works only with "point shapes" but not with "multipoint shapes" is this ok?
    – Dan
    Commented Jun 25, 2018 at 12:42
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.

1
  • 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! Commented Sep 26, 2012 at 11:52
2

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

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

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

0

I could not find a way to do this via GUI

However by python code I could create a shape file and import it as a Layer--> Add Layer--> Vector Layer --> Upload from folder option and give the path of the shape file

   import geopandas as gpd
   from geojson import Point as GeoPoint

   points.append(GeoPoint((lon,lat)))
   gdf = gpd.GeoDataFrame(geometry=points, crs='EPSG:4269')
   gdf.to_file(f"./data/pointstest_{counter}.shp")

colab link https://colab.research.google.com/drive/1nCXSqVCqd9W_XZTu23WLcJ0R-4P4Idwm?usp=sharing

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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