Estoy trabajando con los datos de polígonos de Natural Earth 10m Admin 1 States Provinces. Este conjunto de datos contiene multi-polígonos para cada estado / provincia en todo el mundo. Lo que me gustaría hacer es agarrar el polígono más grande para cada estado / provincia, a continuación, crear un centroide que está dentro de ese polígono para fines de etiquetado en la cartografía web.
Seguí adelante y calculé el área de cada polígono utilizando ST_Area(geom::geography)
para el conjunto de datos y hasta ahora mi consulta PostGIS tiene el siguiente aspecto, que devuelve el polígono más grande para un solo estado/provincia:
SELECT area, name, ST_Centroid(geom) geom
FROM ne_10m_admin_1_states_provinces
WHERE area IN (
SELECT area
FROM ne_10m_admin_1_states_provinces
WHERE name = 'state province name'
ORDER BY area DESC
LIMIT 1
)
Sin embargo, no estoy seguro de cómo determinar la mejor manera de iterar sobre todas las características en el conjunto de datos para agarrar el polígono de cada estado / provincia con la mayor área. ¿La mejor manera de hacerlo sería crear una función en PGSQL? ¿O hay una forma más sencilla a través de SQL?