I have a layer of vectors located around, say, (100, 100), and I want to move them to new coordinate like (1000, 1000).

How should I do it using QGIS?


Yep sure can. Like alexgleith said you can use the qgsaffine plugin (from the plugin installer)

The top of the first line is at 0,0 and the top of the second line is at 5,5. At the start the points are along 0 on the X. enter image description here

Using the Affine plugin we can add 5 to all the X coordinates:

enter image description here

Then after they are all on the second line at X 5, Y 5:enter image description here

|improve this answer|||||
  • I was happy to try this but first the interface of plugin looks very different now and second there is some limitation because there is no way I can put there 7500000 as is standard value when using GDA94 grid or UTM grid... – Miro Mar 18 '14 at 3:47
  • Umm, I moved it first manually with move tool as it is said in the second answer. – Miro Mar 18 '14 at 3:53
  • "The top of the first line is at 0,0 and the top of the second line is at 5,5." how can it be, if both lines are aligned vertically? – Rodrigo Oct 21 '19 at 11:45

If you want to move them manually, simply start editing, select the features you want to move and then select the move tool and shift them.

To move them by a particular x,y offset, you might be able to use the python plugin "qgsaffine".

I am not up to date with using the python console, but there is probably a solution there too.

|improve this answer|||||
  • Unfortunately, QGIS memory usage goes through the roof and crashes unless you're only moving a few simple objects. – Damien Apr 26 '13 at 1:05

The plugin in the accepted answer is not available anymore. The Affine Transformations is available and is very useful.

With this plugin you can create a formula. In the screenshot I shifted all cells with 17.396 (meters) to the north.

screenshot of the main screen of the plugin

|improve this answer|||||
  • What do x' and y' mean? Why the first is 1 and the second 0 by default? Why are there two of each x+ and y+? Why the second x+ is 1 by default, with all the rest 0? – Rodrigo Oct 21 '19 at 11:26
  • 1
    The x' and y' means the derived x and y from the original vector layer. You have to read it like this: derived x= (1.0 * original x) + (0.0 * original y) + 0.0 This means that there is no change in the x direction, hence 1.0 times x. I wanted to shift all cells up (to the north) by 17.396 meters. So I only added 17.396 to (1 * y). When you don't want to have a change at all, you just use: x' = (1 * x) + (0 * y) + 0 and y' = (0 * x) + (1 * y) + 0 – Gert Oct 24 '19 at 12:44
  • Thank you! Now I got it. – Rodrigo Oct 24 '19 at 12:49

I find the "Numerical vertex edit" plugin very useful for specifying new coordinates for a point.

On an editable layer, use the tool to select a point, then you will be prompted to enter the new coordinates.

|improve this answer|||||

In QGIS 3.x there is no need for plugin to move vector shapes any more as there is routine called "Translate" in Toolbox -> Vector Geometry. You simply put offset distance for x and y axis and run it or, - as said above, if you prefer manual positioning, start edit layer, select all entities and move them with "Move feature" tool.

enter image description here

|improve this answer|||||

There is a plugin called move on the code repository.

It moves shapes from point A and B and does that without complications.

It Move all selected objects from point to point with snap.

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