Tenemos un problema que no estamos muy seguros de cómo se enfoque, tenemos un número de polígonos que figuran dentro de una mayor delimitación de polígonos, necesitamos ampliar estos polígonos tanto como sea posible, pero sólo hasta que de un solo filo toca el polígono que contiene.
Espero un diagrama en el que se ayuda con mi explicación:
Los polígonos en red puede ser asumido como ya creado, el punteado de los polígonos en verde indican el final polígono que queremos crear (ampliada sólo lo suficiente hasta que un lado toca las paredes de la delimitación del polígono).
Esta será de ejecución de datos grandes (cientos de millones de polígonos con cientos de millones de interior de los polígonos), ya que la eficiencia es uno de los problemas que estamos enfrentando. En el código, lo que es razonablemente trivial, sin embargo no es factible para el conjunto de datos que tenemos.
Tenemos una gran instalación de clúster que puede procesar Geoespacial SQL eficiente que tenemos la intención de utilizar para esta tarea, pero hay otras que arbitrariamente pasar un valor a una función expand no estamos muy seguro de cómo hacer esto de forma inteligente a cantidades masivas de datos.
Creo que tenemos que ampliar el polígono usando ST_Expand
y parar cuando ST_Intersects
sobre el principal polígono es cierto - sólo tengo ni idea de cómo hacer que en una sola llamada SQL.