Ich bin überrascht, dass es in R räumlich keine Lösung dafür gibt
Brad Nesom
Antworten:
8
Dies ist ein altes Problem ohne einfache Lösung. Der einzige Ansatz, auf den ich gestoßen bin, besteht darin, eine Funktion zu erstellen, bei der Sie eine Überschrift und die Anzahl der Teile angeben und der Computer Versuche durchführt, bis die gleichen Flächen erreicht sind. In AutoCAD gibt es eine LISP-Funktion. In Postgis funktioniert es genauso. Hier ist ein Auszug aus PostGIS in Aktion von Manning. Dieser Code teilt ein Polygon in zwei gleiche Teile:
WITH RECURSIVEref(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;
Ein Ansatz könnte darin bestehen, das Polygon vollständig in Dreiecke mit jeweils einer bestimmten Fläche aufzuteilen. Dann wäre es eine Frage des Versuchs, diese (benachbarten) Dreiecke wieder in Polygone mit einer (mehr oder weniger) Größe Fläche / n zu gruppieren. Dies wäre eine Art angepasste Version des Problems "Teilmengen" oder "Rucksack" (und ich würde nicht wissen, wie ich mit PostGIS damit anfangen soll).
Antworten:
Dies ist ein altes Problem ohne einfache Lösung. Der einzige Ansatz, auf den ich gestoßen bin, besteht darin, eine Funktion zu erstellen, bei der Sie eine Überschrift und die Anzahl der Teile angeben und der Computer Versuche durchführt, bis die gleichen Flächen erreicht sind. In AutoCAD gibt es eine LISP-Funktion. In Postgis funktioniert es genauso. Hier ist ein Auszug aus PostGIS in Aktion von Manning. Dieser Code teilt ein Polygon in zwei gleiche Teile:
quelle
Ein Ansatz könnte darin bestehen, das Polygon vollständig in Dreiecke mit jeweils einer bestimmten Fläche aufzuteilen. Dann wäre es eine Frage des Versuchs, diese (benachbarten) Dreiecke wieder in Polygone mit einer (mehr oder weniger) Größe Fläche / n zu gruppieren. Dies wäre eine Art angepasste Version des Problems "Teilmengen" oder "Rucksack" (und ich würde nicht wissen, wie ich mit PostGIS damit anfangen soll).
quelle