Ich versuche, ein Web-GIS-Problem anzugehen und muss die beste Strategie herausfinden. Ich habe eine Karte mit 30.000 Zellen, die ein Raster für die Provinz Alberta bilden. Ich habe eine Liste von Datenpunkten für jede Zelle - ungefähr 50 Indikatorfelder und Werte für jede Zelle. Ein Wert könnte beispielsweise die menschliche Bevölkerung sein, sodass jede Zelle einen Wert für die menschliche Bevölkerung für diese Zelle hat. Ich möchte eine interaktive Karte erstellen, die diese Werte visuell entweder mit Quadraten für die Zellen oder mit einem gemischten Heatmap-Look anzeigen kann. Darüber hinaus möchte ich in der Lage sein, zusammengesetzte Berechnungen für alle Datenpunkte durchzuführen und diese Berechnungen zu verwenden, um zusätzliche Karten zu erstellen. Unter Berücksichtigung der Berechnungen gibt es ungefähr 300.000 Permutationen auf der Karte. Um das Ganze abzurunden, ist es auch zeitlich begrenzt; Es gibt 16 verschiedene Zeitscheiben.
Meine bisherige Strategie:
1) Berechnen Sie auf der Serverseite die Zellenwerte zur Laufzeit dynamisch und senden Sie die Werte an den Client (alle 30.000). Dies entspricht ungefähr einem Wert für jedes Quadrat mit 3 x 3 Pixeln in einem Bild mit 525 x 525 Pixel auf dem Bildschirm.
2) Verwenden Sie auf der Clientseite mit offenen Ebenen ein 1px-PNG, dessen Größe geändert werden kann, und passen Sie den Alpha-Wert nach Bedarf an, um den unterschiedlichen Farbverlauf anzuzeigen, der dem Datenwert für jede Zelle entspricht. Die Größe des PNG wird geändert, wenn die Karte vergrößert oder verkleinert wird. Theoretisch würden sie genau positioniert, um eine pauschale Abdeckung der Karte als Quadrate zu bilden, oder sie würden sich unter Verwendung des Wärmekartenansatzes genug überlappen, um eine pauschale Abdeckung zu bilden.
Die Frage:
Ist es sinnvoll, diese Zellenwerte dynamisch auf dem Server zu berechnen und dann in Echtzeit an eine OpenLayers-Schnittstelle zu senden? Ich bin zuversichtlich, dass der Server die Berechnungen durchführen kann, aber kann OpenLayers vernünftigerweise 30.000 Datenpunkte gleichzeitig auf einer Karte anzeigen? Ist es vernünftig zu erwarten, dass mit Punktdaten eine pauschale Abdeckung erstellt werden kann? Ich denke, ich versuche, das Äquivalent einer Vektorkarte mit 30.000 Formen zu erstellen, die eine 100% ige Abdeckung der Karte bieten, aber Punktdaten verwenden, um sie zu vereinfachen.
Die alternativen Strategien in meinem Kopf sind:
a) um die Karten in Echtzeit auf dem Server zu generieren und als gerasterte Ebenen an den Client zu senden
b) um alle Permutationen im Voraus zu generieren und als gerasterte Karten auf dem Server zu speichern
Irgendwelche Gedanken? Ist meine Annäherung weit weg und bellt den falschen Baum an? Irgendwelche Ratschläge zu einer besseren Methode?
Ich würde mich über alle Gedanken zu diesem Thema sehr freuen! Wenn Sie interessiert sind, möchte ich vielleicht sogar einen Entwickler beauftragen, der Ihnen dabei hilft.
Vielen Dank!
Noah