Teóricamente es posible obtener los polígonos de bloques de ciudades ( bloques urbanos) de las calles, cuando las calles están representadas por el eje de la calle ( LineStrings ).
Los bloques urbanos están delimitados por calles, por lo que los segmentos de calles se pueden usar para formar un polígono que contiene solo una cuadra dentro ... Ver ilustraciones.
Hay un script (SQL) PostGIS 2.X para hacer esto? ¿Un software de complemento?
PD: las geometrías aproximadas de bloques de ciudades son suficientes.
Ilustrando
Comenzando el proceso desde una "malla de segmentos de línea conectados", puede ser: 1) obtener polígonos asociados; 2) aislar los polígonos mediante tampón negativo y restar el tampón de las líneas.
Ejemplo: el polígono 262 (que representa una manzana) se originó en los segmentos 2496, 2494, 2369, 1513, ... Y el polígono vecino 263 puede usar algunos segmentos comunes, pero a continuación (por st_buffer negativo u otra operación) será polígonos realmente aislados, por lo tanto, baja precisión es suficiente.
(EDITAR)
Creo que podemos traducir este problema específico en uno más genérico: el conjunto de segmentos de calles puede verse como una especie de teselación , es decir, los segmentos separan el plano en regiones contiguas : los bloques urbanos se encuentran en el interior de estos regiones. Cada segmento es un lado de dos regiones.
El principal problema es transformar el "conjunto de segmentos de la teselación" en polígonos independientes .