[GRASS-dev] Re: [GRASS-user] vector layer labelling doesn't work....

On Aug 9, 2008, at 5:48 AM, <grass-user-request@lists.osgeo.org> wrote:

I have no definite opinion on this, but I see Giovanni's point and I
think the latest patch I posted responds to this: labelling areas when
areas+labelling is asked for, without showing centroids...

So, let's ask for more opinions: should labelling of areas be linked to
centroids only, and thus display of centroids obligatory for seeing
labels for areas, or should labels for areas be displayed even if
centroids aren't ?

I filed this as an enhancement ticket on Trac:
#252 (allow display of area labels without displaying centroids) – GRASS GIS, so maybe discussion should go on
there.

Let me suggest something more radical, since we're rethinking this for GRASS 7 too.

Do we really NEED an explicit and user accessible vector area centroid? What for?

The "centroid" is NOT in the center of an area poygon. It can be anywhere inside. It is only a place holder to differentiate an area from a boundary. It is a feature of GRASS's internal structure for creating vector objects from primitives. It currently also serves as the area labeling point, but annoyingly has to be displayed just to see a label. But what else does it do from the GIS use point of view?

I suggest the following...

1) Area centroids should always be created by GRASS (not by a user clicking a point somewhere in the area), and they should be the geographic centroid of the area. In this way, they have topological significance and can be used for some vector operations.
2) Area centroids are never displayed by default, but like line directions can be displayed and accessed if needed.
3) Area centroids can be associated with labels or not be associated with labels. I can see utility of doing either.

Michael

On 10/08/08 17:37, Michael Barton wrote:

On Aug 9, 2008, at 5:48 AM, <grass-user-request@lists.osgeo.org> wrote:

I have no definite opinion on this, but I see Giovanni's point and I
think the latest patch I posted responds to this: labelling areas when
areas+labelling is asked for, without showing centroids...

So, let's ask for more opinions: should labelling of areas be linked to
centroids only, and thus display of centroids obligatory for seeing
labels for areas, or should labels for areas be displayed even if
centroids aren't ?

I filed this as an enhancement ticket on Trac:
http://trac.osgeo.org/grass/ticket/252, so maybe discussion should go on
there.

Let me suggest something more radical, since we're rethinking this for GRASS 7 too.

Do we really NEED an explicit and user accessible vector area centroid? What for?

The "centroid" is NOT in the center of an area poygon. It can be anywhere inside. It is only a place holder to differentiate an area from a boundary. It is a feature of GRASS's internal structure for creating vector objects from primitives. It currently also serves as the area labeling point, but annoyingly has to be displayed just to see a label. But what else does it do from the GIS use point of view?

I suggest the following...

1) Area centroids should always be created by GRASS (not by a user clicking a point somewhere in the area), and they should be the geographic centroid of the area. In this way, they have topological significance and can be used for some vector operations.

That is not possible as sometimes the geographic centroid of an area lies outside the area.

2) Area centroids are never displayed by default, but like line directions can be displayed and accessed if needed.

+1
This should just be a very minor change in d.vect, i.e.

--- main.c 2008-08-10 17:53:47.000000000 +0200
+++ main.c.copy 2008-08-10 17:54:22.000000000 +0200
@@ -139,7 +139,7 @@

      /* Query */
      type_opt = G_define_standard_option(G_OPT_V_TYPE);
- type_opt->answer = "point,line,boundary,centroid,area,face";
+ type_opt->answer = "point,line,boundary,area,face";
      type_opt->options = "point,line,boundary,centroid,area,face";
      type_opt->guisection = _("Query");

3) Area centroids can be associated with labels or not be associated with labels. I can see utility of doing either.

I think the question goes beyond labels. Centroids are the main element representing areas. Attributes are attached to centroids, as areas do not have a "physical" representation, which IIUC is due to the topological logic of GRASS features, as you cannot unambigously associate identify the area a boundary belongs to, so you need something inside the area. So, by definition, any attribute information pertaining to areas is associated with the centroid.

Moritz