Refinación @Pablo de la buena respuesta, con definiciones (abajo) y la adición de una lista de comprobación para cada método, constrainting su uso.
Definiciones:
Bloque capa es una tabla de SQL con los polígonos que representan los bloques de la ciudad de los límites, de la cual o sin aceras, pero conservando privado (véase el frente-1) o no adressable callejones (véase la parte delantera-2) en el bloque.
Mucha de la capa es una tabla de SQL con los polígonos que representan los terrenos de los límites.
Calle de la capa es una tabla de SQL con líneas que representan las calles... O, en un "río de la tierra" también los ríos (y un tren puede ser un "frente"?).
Front-1: el @Pablo métodos son acerca de un concepto general de la frente , donde algunos lotes tienen más que "un frente sobre la calle", porque están en la esquina (dos o más frente-segmentos acerca de todas sus calles de los alrededores).
Front-2: "front" está sobre la calle indicada en el oficial de la dirección (o la dirección de correspondencia) de la parcela. Ellos, todos mucho (incluso en la esquina) tienen sólo una parte-de la calle-segmento. PS: si su sistema de dirección y el bloque de la capa de aceptar lotes de un "horizontal condominuim" y de su condominio, las direcciones, las "calles privadas" deben mostraron como de costumbre calles.
@ChristianAbreu la pregunta de illustraion mostrar Frontal-2 concepto (!), no la general.
Nota técnica: puede conectar Python con PostGIS o con cualquier otro OGC-compatible con la herramienta (para SQL espaciales) para expresar formalmente las listas de verificación.
Lista de verificación para el método#1 - el lado de un polígono que no toque ningún otro polígono
Este método tiene un topológica enfoque, es válida sólo para los bloques donde todos muchas áreas de su forma de bloque del área. Así, el uso de este método, es necesario capa de bloque.
Expresan formallly: comprobar si blkarea~=sum_lotarea
para cada bloque,
SELECT ST_Area(geom) INTO blkarea FROM block WHERE gid=each1;
SELECT SUM(ST_Area(geom)) INTO sum_lotarea FROM lot WHERE gid_block=each1;
O, si el goemetries no son exactos, o si los bloques son con aceras, uso mínimo de w para ST_Buffer(block.geom,-w)
que garantiza ST_Within(lot.geom lot,ST_Buffer(block.geom,-w))
de todos los lotes.
NOTA: consulte también
si todos los lotes están dentro de un bloque, ST_Within(lot.geom,block.geom)
de todos los lotes y asociados bloques.
si, para todos los que no son disjuntos un montón, hay no se solapaban áreas. not(ST_Overlaps(a,b))
o de esta zona de intersección no tienen significado (que es 2*ST_Area(ST_Intersection(a,b))/(ST_Area(a)+ST_Area(b))<0.01
).
Lista de verificación para el método#2 - el lado del polígono más cercano a una carretera
Este método tiene un enfoque geométrico, basado en la mínima distancia euclidiana.
Compruebe si la calle de la capa de han solo "vía pública", debido a que se debe separar "las calles públicas" (que puede expresar el oficial de la dirección de un terreno) de "los callejones" (puede ser interior de la parcela o un "condo-bloque").
A continuación, compruebe visualmente si todos los "visual bloques" están rodeados por las calles. Si su dirección de capa está incompleta, el método no es válido para que los bloques.
Conclusiones: reglas para elegir los métodos
Para Front-1 definición:
A) Cuando tienes una buena calle de datos, utilice el método#2;
B) Cuando se han capa de bloque y coherente mucha capa, utilice el método#1
C) Cuando no se tienen buenos datos, trate de dividir tus datos espaciales en partes donde usted puede utilizar uno u otro método. PS: aun sin el bloque de la capa se puede construir de unirse a los vecinos de lotes, o por una buena respuesta a esta pregunta.
Para la parte Delantera-2 definición: se necesita una buena calle de datos, ya que la parte Delantera-2 definición del nombre de la calle de la gran cantidad de direcciones). Utilizar el método#2 y la caída de la frente-segmentos que no tienen el mismo nombre de la calle de la gran cantidad de direcciones.