# Determining the longest side of polygon in QGIS?

Is there a possibility to determine the longest side of a polygon with QGIS?

As I need to do that for hundreds of polygons I would prefer an automized method (like a plugin).

So far my idea was:

• transforming a polygon into a line
• cut it on the vertices
• measure the length
• here I became stuck, how to become the longest line without checking the whole bunch of lines one by one?

If you can use PostGIS, try using the ST_LongestLine function like this:

``````SELECT ST_LongestLine(geom, geom)
FROM mypolytable;
``````

This will find the longest line that can be drawn within each polygon geometry. Note that I'm using this function that references the same geometry column `geom` twice.

• Thanks for your answer. The function you mentioned returns the 2-dimensional longest line points of two geometries but Im looking for the longest line of a single polygon. Am i wrong? Anybody else an idea?? – ragavendra Apr 24 '13 at 15:53
• Two geometries is actually one geometry when you reference the same geometry twice, as I have described. Did you try it? – Mike T Apr 24 '13 at 23:40

Let's assume there is a polygon layer `"polygons"` (pink) with its corresponding attribute table accordingly, see image below. Step 1. Proceed with `"Polygons to lines"`. Step 2. Apply `"Extract vertices"` two times, it will be important for the next step. Step 3. Make use of `"Join by lines (hub lines)"` between the two layers with vertices. Afterwards the application of `"Fix geometries"`, `"Remove null geometries"` and `"Delete duplicate geometries"` is probable. Step 4. Make use of `"Extract by location"` (`are within` for geometrical predicate) between the Results of the Step 3 and Step 1. Step 5. Use `"Extract by expression"` using the following expression
`\$length = maximum(\$length, "id")` 