Question: I have two layers, a line and a point layer.

I need to make a line layer which connects all the points to the nearest line feature. How can I do that?

Is there a plugin available for QGIS?
This is a very important tool which is missing in QGIS.

ArcView has this tool: ["Nearest Features"](http://www.jennessent.com/arcview/nearest_features.htm)

![](https://i.stack.imgur.com/nMzUe.jpg)

Answer: 
As an alternative, you could:

1. Use the **Convert Lines to Points** tool from:

*Processing Toolbox > SAGA > Shapes - Points > Convert Lines to Points*

(Add points over small distances. E.g. add a point every 1m if the overall line is 100m)

[![Convert lines to points](https://i.stack.imgur.com/izAtG.png)](https://i.stack.imgur.com/izAtG.png)
2. Use the **Distance to nearest hub** from:

*Processing Toolbox > QGIS geoalgorithms > Vector analysis tools > Distance to nearest hub*

(Set the parameters, using the output layer of the **Convert Lines to Points** tool as the *Destination hubs layer* and setting the *Output shape type* as **Line to hub**)

[![Distance to nearest hub](https://i.stack.imgur.com/wWZNN.png)](https://i.stack.imgur.com/wWZNN.png)
3. Final result should be a line layer which connects the original points layer with the original line layer (with line-converted points):

[![Final result with points](https://i.stack.imgur.com/OnmFA.png)](https://i.stack.imgur.com/OnmFA.png)

(without line-converted points):

[![Final result without points](https://i.stack.imgur.com/oGifH.png)](https://i.stack.imgur.com/oGifH.png)

I used QGIS 2.12.3-Lyon.
Meanwhile (since QGIS 3.16), there is the new [`overlay_nearest()`](https://docs.qgis.orglatest/en/docs/user_manual/working_with_vector/functions_list.html#overlay-nearest) function you can use for that with QGIS expressions. For each point, 1) get the nearest line with `overlay_nearest()`, 2) get the closest point on this line to the point using [`closest_point()`](https://docs.qgis.org/latest/en/docs/user_manual/working_with_vector/functions_list.html?highlight=overlay_nearest#closest-point).

The expression to be used with [Geometry generator](https://docs.qgis.org/latest/en/docs/user_manual/style_library/symbol_selector.html#the-geometry-generator) or [Geometry by expression](https://docs.qgis.org/latest/en/docs/user_manual/processing_algs/qgis/vectorgeometry.html#geometry-by-expression) ([see here for details](https://gis.stackexchange.com/a/392619/88814)) look like:

```
make_line (
    $geometry,
    closest_point (
        overlay_nearest ('line', $geometry)[0],
        $geometry
    )
)

```

* Replace `line` in line 4 with the name of your line layer.

*Dotted lines to connect points to nearest lines are created with the above expression:*

[![enter image description here](https://i.stack.imgur.com/hrFUe.png)](https://i.stack.imgur.com/hrFUe.png)