Dies ist möglich, indem Sie einen anderen 'Geometriegenerator' verwenden als den, den Sie ursprünglich beabsichtigt haben. Ich vermute, Sie können vermeiden, dass Sie die Verbindungsschicht aller Verbindungen mithilfe einer virtuellen Schicht generieren müssen:
Ein paar Punkte:
Fügen Sie mithilfe der folgenden SQL eine virtuelle Ebene hinzu: JOIN stimmt jeden Punkt mit jedem anderen überein, und die Liniengeometrie wird mithilfe der Spatialite MakeLine- Funktion generiert :
SELECT s.id 'ID1', c.id 'ID2' , MakeLine(s.geometry,c.geometry) 'geometry'
FROM SamplePoints AS s JOIN SamplePoints AS c
WHERE s.id <> c.id
Das Ergebnis:
Diese virtuelle Tabelle könnte dann mithilfe der Atlas-Funktionalität dynamisch gefiltert werden.
Das dynamische Erzeugen gekrümmter Linien wäre schwieriger, sollte aber dennoch möglich sein. Eine kartografisch angemessene Krümmung (unter Berücksichtigung der Verteilung der anderen Linien) geht wahrscheinlich über das hinaus, was mit virtuellen Ebenen erreicht werden kann.
Aktualisieren:
Mit ein wenig Basteln und viel Verweis auf die Spatialite-Funktionsliste habe ich gekrümmte Linien erzeugt:
Die virtuelle Schicht SQL dafür ist unten. Beachten Sie, dass alle Permutationen angezeigt werden und das Umkehren der Reihenfolge von Start- und Endposition die komplementäre Kurve erzeugt.
SELECT s.id 'ID1', c.id 'ID2' ,
MakeArc(
X(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2)),
Y(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2)),
distance(s.geometry,c.geometry) * 1.1180339887,
90 - azimuth(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2),s.geometry) * (180/PI()),
90 - azimuth(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2),c.geometry) * (180/PI()),
27700,
2) 'geom' /*line:27700*/
FROM SamplePoints AS s JOIN SamplePoints AS c
WHERE s.id <> c.id