Ich habe eine Reihe von Websites zu Tausenden. Nicht alle Benutzer sehen dieselben Sites auf der Karte - also ACL. Daten werden in einer Nicht-GIS-Datenbank (mssql, ora usw.) gespeichert und jetzt mit einer Standard-SQL-Abfrage abgerufen und mit einer JSP an den Client (OpenLayers) zurückgegeben.
Der aktuelle Code ist bereits optimiert, um clientseitiges Clustering (also weniger Chaos auf dem Client, aber alle Daten sind vorhanden) und Bounding-Box-Abruf (also eine Teilmenge von Daten, die jedoch für jeden auf den Server gehen müssen) durchzuführen Schwenken / Zoomen für neue Daten) und sogar serverseitiges Clustering (um die an den Client gelieferten Daten zu reduzieren).
Stattdessen möchte ich Bilder / Kacheln für alle meine Daten generieren, ähnlich wie Google Maps für alle Ergebnisse Tonnen kleiner roter Punkte anzeigt - http://bit.ly/d73qrw [Google Maps-Suche nach "Kaffee"] und auf dem Client anzeigen. Wenn Sie darauf klicken, rufen Sie schnell einen WMS-Dienst an, um Informationen zu erhalten. Das ist zumindest die Idee.
Aber hier ist das Problem: Ich kann nicht einfach einen Standard-WMS-Dienst vor meinen Daten einrichten, da nicht alle Benutzer dieselben Daten sehen. Gibt es eine Möglichkeit, diese Kacheln im laufenden Betrieb zu generieren oder WMS ACL-fähig zu machen?
edit - 22.09.2010 - Also habe ich herausgefunden, wie Google die Kacheln oder vielmehr die Technologie dahinter generiert. Sie verwenden Google Fusion Tables. Speichern Sie N Zeilen in ihren Tabellen. Wenn die Daten lat / lon-fähig sind, kann das Fusion Table-Produkt die Kacheln im laufenden Betrieb (!) Generieren. Dies ist die Art von Dingen, nach denen ich suche - eine performante Karte mit Tonnen von Daten. Aber natürlich muss es ACL-gesteuert sein. Ist es sinnvoll, eine benutzerdefinierte, leichte Implementierung der WMS-Spezifikation zu schreiben oder ein vorhandenes Produkt zu ändern? Obwohl Geoserver viel zu ändern scheint, um ACL zu unterstützen.
edit - 27.09.2010 - Weitere Informationen seit dem Hinzufügen von Kopfgeld. Meine Daten sind in Oracle. Ora räumlich ist nicht aktiviert. Derzeit werden die Daten auf Unternehmensebene extrahiert und in Daten konvertiert, die an den Client gesendet werden, wo der Client die "Punkte" auf der Karte platziert. ACL wird auf der Ebene der Geschäftslogik ausgeführt, nicht auf DB oder ActivDir oder Ähnlichem. Die Authentifizierung ist einfach, die Autorisierung jedoch nicht und musste daher im Code erfasst werden. Möchten Sie wissen, wie Sie am besten einen WMS-Dienst erstellen, um Tausende von "Punkten" auf der Karte bereitzustellen, auf denen jeder Benutzer eine andere Teilmenge von Punkten sieht. Ist die Antwort ein CQL_FILTER? Aber wie werden dann die Parameter eingestellt? Eine Idee, die ich jetzt habe, ist ein zweistufiger Prozess. Führen Sie zuerst eine interne Abfrage aus, um eine Liste der IDs abzurufen, die der Benutzer sehen darf, und erstellen Sie dann eine WMS-Anforderungszeichenfolge mit diesen IDs im Parameter CQL_FILTER. Gibt es etwas, das diesen Prozess vereinfacht? Und wenn ich damit anfange, wie kann ich diese Schicht als "WMS" -Schicht zu einem Open Layers-Client hinzufügen, da für OL der Endpunkt mein Code zum Abrufen von IDs aus der Datenbank ist, nicht der eigentliche WMS-Dienst auf z. B. GeoServer?