1

ESRI software has a concept of a 'label point' for a (multi)polygon. It is like the centroid, except it is guaranteed to be within the (multi)polygon. Like for a U-shaped polygon, the label point is somewhere in the bottom of the U. See the ArcGIS REST API Reference on the subject.

I'd like to know a reference, English description, or pseudocode for how something like this is calculated for a polygon or multipolygon.

I get the vibe from results in ArcGIS that the label point is somewhere on the the medial axis transform (skeleton). But not just in its middle, because a big bulge at one end of a polygon will pull the label point into it. So it has a 'center of mass' aspect.

I haven't found an equivalent function in PostGIS (there is ST_PointOnSurface, but that is not quite the same thing). Nor have I found something in QGIS, but maybe I'm not looking for the right non-ESRI terminology.

This duplicates this question, but that one didn't get any high-rated non-hacky answers so I thought I'd ask again. Forgive me if it isn't the done thing.

MC5
  • 1,901
  • 1
  • 14
  • 23
  • Just based on empirical evaluation, the label point of a single-part polygon is the midpoint of the largest horizontal transect at ~1/4, ~1/2, and ~3/4 of the BND. Multi-part might be on the largest part, or the first part; I haven't tested that. Please edit this question to specify the software for which you want this answer, since right now it's three different questions (ArcGIS, PostGIS, and QGIS). – Vince Apr 14 '16 at 23:43
  • See @whuber answer in the post you hyperlinked. It mentions negative buffer = pseudocode – FelixIP Apr 14 '16 at 23:54
  • Negative buffer is an extremely expensive way to calculate a label point. Horizontal or diagonal transects use the intersection of three or two lines across the figure, while negative buffers are computationally expensive (trig functions) and iterative. – Vince Apr 15 '16 at 03:22
  • @Vince It seems he means centre of largest inscribed circle (big bulge), not just some point inside. Yes buffer is slow but it is a buil-in function, so logic is simple http://gis.stackexchange.com/questions/147790/checking-if-polygon-fits-inside-another-polygon-using-arcgis-or-qgis/148030#148030 – FelixIP Apr 15 '16 at 06:26
  • Please note that it is not helpful for the discoverability of good answers to duplicate questions every couple of years. You can add a bounty to draw attention to the original question once you have enough reputation. – underdark Apr 15 '16 at 18:29
  • Turns out the PostGIS ST_PointOnSurface function is "good enough", and based on an explanation in this question it sounds like some of the approaches people have offered here and in the duplicate question. Somehow the function name/docs led me to believe that function placed the point on the polygon boundary. – MC5 May 05 '16 at 18:06

0 Answers0