Etiquetar geometrias de parte simples poligonais em PostGIS

por Eloi

Se temos um tema com geometrias de parte simples (single part) poligonais, como por exemplo o tema países. Ao etiquetar surgirá uma etiqueta por cada elemento geométrico quando queremos apenas uma etiqueta para todos os elementos pertencentes ao mesmo grupo, neste caso país.

Antes.

Esta foi uma solução simples e rápida que encontrei. Criar um novo campo com geometria para pontos e ai calcular o centroide da geometria poligonoal com maior superfície do grupo, neste caso país. Código SQL:

SELECT AddGeometryColumn('sch_cartobase', 'wd_paises', 'geom_label', 4326, 'POINT', 2);

UPDATE sch_cartobase.wd_paises 
	SET geom_label = SetSRID(MakePoint((ST_X(ST_Centroid(geom))),(ST_Y(ST_Centroid(geom)))), 4326) 
	WHERE ST_Area(geom) 
		IN (SELECT max(ST_Area(geom)) 
		    FROM sch_cartobase.wd_paises 
		    GROUP BY iso3166_2);

Agora para o mesmo tema existem duas geometrias, uma poligonal e outra de pontos, esta ultima servirá apenas para etiquetar.

Depois.