Estou surpreso que não há uma solução para isso em R espacial
Brad Nesom
Respostas:
8
Este é um problema antigo, sem solução simples. A única abordagem pela qual me deparei é fazer uma função que você indica e o número de peças e o computador fazem testes até obter áreas iguais. Existe uma função LISP com isso no AutoCAD. No postgis, ele funciona da mesma maneira, aqui está um trecho do PostGIS in Action de Manning, esse código divide um polígono em duas partes iguais:
WITH RECURSIVE
ref(the_geom, env) AS (
SELECT the_geom,
ST_Envelope(the_geom)As env,
ST_Area(The_geom)/2As targ_area,1000As nit
FROM us.states
WHERE state ='Idaho'),
T(n,overlap) AS (
VALUES (CAST(0AsFloat),CAST(0AsFloat))
UNION ALL
SELECT n + nit, ST_Area(ST_Intersection(the_geom, ST_Translate(env, n+nit,0)))
FROM T CROSS JOIN ref
WHERE ST_Area(ST_Intersection(the_geom, ST_Translate(env, n+nit,0)))>ref.targ_area
),
bi(n) AS
(SELECT n
FROM T
ORDER BY n DESC LIMIT 1)
SELECT bi.n,
ST_Difference(the_geom, ST_Translate(ref.env, n,0))As geom_part1,
ST_Intersection(the_geom, ST_Translate(ref.env, n,0))As geom_part2
FROM bi CROSS JOIN ref;
Uma abordagem pode ser dividir o polígono completamente em triângulos, cada um com uma determinada área. Seria uma questão de tentar agrupar esses triângulos (adjacentes) de volta em polígonos de área (mais ou menos) de tamanho / n. Isso seria uma espécie de versão personalizada do problema de "subconjunto de soma" ou "mochila" (e eu não saberia como começar com o PostGIS).
Respostas:
Este é um problema antigo, sem solução simples. A única abordagem pela qual me deparei é fazer uma função que você indica e o número de peças e o computador fazem testes até obter áreas iguais. Existe uma função LISP com isso no AutoCAD. No postgis, ele funciona da mesma maneira, aqui está um trecho do PostGIS in Action de Manning, esse código divide um polígono em duas partes iguais:
fonte
Uma abordagem pode ser dividir o polígono completamente em triângulos, cada um com uma determinada área. Seria uma questão de tentar agrupar esses triângulos (adjacentes) de volta em polígonos de área (mais ou menos) de tamanho / n. Isso seria uma espécie de versão personalizada do problema de "subconjunto de soma" ou "mochila" (e eu não saberia como começar com o PostGIS).
fonte