Displaying multipoint features as polygon using QGIS?

Tested on QGIS 2.18 and QGIS 3.4

In terms of "an easy way" I can suggest using a "Virtual Layer" through Layer > Add Layer > Add/Edit Virtual Layer.... However, @Vince is absolutely correct that " it might not be the right way".

This solution is also based on @JoshC's note: "you have some sort of unique id field for your features".

Let's assume we have seventeen features in "point_layer" with three groups of the patch of plants respectively, see image below. This is a trivial example because points are following certain point patterns, i.e. they are clustered.

Example

With the following Queries, it is possible to achieve several results.


Using a ConvexHull

SELECT p.Name,
       ConvexHull(AddPoint(MakeLine(p.geometry),StartPoint(MakeLine(p.geometry)))),
       COUNT(*) AS Elements
FROM point_layer AS p
GROUP BY p.Name

The output Virtual Layer will look like

Output_1


As polygon

p.s. keep in mind points order for each group

SELECT p.Name, 
       MakePolygon(AddPoint(MakeLine(p.geometry),StartPoint(MakeLine(p.geometry)))), 
       COUNT(*) AS Elements
FROM point_layer AS p
GROUP BY p.Name

The output Virtual Layer will look like

Output_2


As an envelope

SELECT p.Name,
       Envelope(AddPoint(MakeLine(p.geometry),StartPoint(MakeLine(p.geometry)))), 
       COUNT(*) AS Elements
FROM point_layer AS p
GROUP BY p.Name

The output Virtual Layer will look like

Output_4


As Voronoi diagram

SELECT p.Name, 
       VoronojDiagram(AddPoint(MakeLine(p.geometry),StartPoint(MakeLine(p.geometry)))), 
       COUNT(*) AS Elements
FROM point_layer AS p
GROUP BY p.Name

The output Virtual Layer will look like

Output_3


References:

  • A quick tutorial to SpatiaLite | 2.3. GEOMETRY classes
  • SQL functions reference list | SQL functions that implement spatial operators
  • Creating polygons from line segments using PostgreSQL and PostGIS

Given a multipoint layer like you describe, with some features as individual points, and some as multipoint, we can derive polygons for the patches in a couple steps, which could easily be combined into a custom model.

Note: this process assumes you have some sort of unique id field for your features.

Here's my points layer, color-coded to the feature ID to help show the multipoint patch in the center.

points layer with multipatch in center

  1. Run Multipart to single parts in the Vector geometry toolbox.

  2. Run Minimum bounding geometry, also in the Vector geometry toolbox.

    • Set Field parameter to unique_id
    • Set Geometry type to Convex Hull

For all features that were already single points, there will not be enough points to generate a convex hull. For your multipoint patches, you'll get results like these:

multipatch to polygon

That's it!

A model of the same would look like this:

points to patches model