Welche Optionen stehen für serverseitiges Clustering mit Open Source-GIS-Tools zur Verfügung?

8

Ich muss eine Webanwendung erstellen, die über 40.000 Punkte auf einer Karte anzeigt. Diese Punkte gibt es auf der ganzen Welt. Mit WFS Service und OpenLayers ist es möglich, Clustering an kleinen Punkten durchzuführen, aber für meinen Fall ist es nicht wirklich nützlich, dieses Clustering auf der Clientseite durchzuführen.

Wie kann ich serverseitiges Clustering in einem WMS- oder gekachelten WMS-Dienst durchführen? Für Google Maps gibt es mehrere solcher Optionen. Was sind die entsprechenden Tools im OSGeo-Feld?

Devdatta Tengshe
quelle

Antworten:

3

Die neuesten Versionen von MapServer (6.0+) unterstützen serverseitiges Clustering - http://mapserver.org/mapfile/cluster.html

Seit Version 6.0 kann MapServer mehrere Features aus einer Punktebene basierend auf ihren relativen Positionen zu einzelnen (aggregierten) Features kombinieren. Es werden nur POINT-Ebenen unterstützt. Diese Funktion wurde über MS RFC 69 hinzugefügt: Unterstützung für das Clustering von Features in Punktebenen.

Der Vorschlag für diese Funktionalität wird unter http://mapserver.org/development/rfc/ms-rfc-69.html näher erläutert

Eine Beispielkonfiguration unten:

LAYER
  NAME "my-cluster"
  TYPE POINT
  ...
  CLUSTER
     MAXDISTANCE 20  # in pixels
     REGION "ellipse"  # can be rectangle or ellipse
     GROUP (expression)  # an expression to create separate groups for each value
     FILTER (expression) # a logical expression to specify the grouping condition
  END

Diese Ebene kann dann wie jede andere als WMS bereitgestellt werden (MapServer unterstützt auch Kacheln).

Ich habe dies nicht versucht, und die Dokumente sind unklar, aber es kann auch einen Cluster-WFS-Dienst unterstützen.

Eine Alternative besteht darin, Clustering auf Datenbankebene und nicht auf Webserverebene durchzuführen. Anschließend können Sie jeden WMS-Server verwenden, siehe - Räumliches Clustering mit PostGIS .

geographika
quelle
0

Es gibt mehrere Möglichkeiten. Entweder können Sie eine WMS-Schicht implementieren. Dadurch werden Ihre individuellen Funktionen im Wesentlichen in Bilddateien umgewandelt. Dies verbessert die Leistung für große Datenmengen, jedoch auf Kosten der clientseitigen Funktionalität (z. B. nicht in der Lage, einzelne Features auf der Karte auszuwählen).

Eine bessere Alternative (abhängig von der Leistung) ist wahrscheinlich die Implementierung von Clustering auf der Serverseite für Ihre WFS-Schicht in OpenLayers .

pecoanddeco
quelle
Könnten Sie bitte klarstellen, was Sie unter der Implementierung einer WMS-Schicht verstehen? Sprechen Sie über die Verwendung von WMS Services?
Devdatta Tengshe