Ich denke darüber nach, die Kachelgenerierung einer Weltschicht für das Webmapping zu testen.
In diesem Zusammenhang möchte ich wissen, wie ich die Anzahl der Kacheln berechnen kann (256 x 256 für Tilecache, wenn ich mich erinnere), die ich für n Ebenen in WGS84-Koordinaten benötige.
Vielleicht verwende ich eine zusammengesetzte Lösung mit vorgenerierten Kacheln und im laufenden Betrieb, aber ich muss am Ende den verfügbaren Speicherplatz kennen, wenn alle Kacheln generiert werden, und die Anzahl der Dateien, die sie darstellen.
Es gibt zwei Ziele: Zeitaufwand und Speicherplatzbedarf.
Alle Informationen sind willkommen
Bearbeiten:
Ich habe dieses Skript gefunden, um die Anzahl der zu generierenden Kacheln in Abhängigkeit von den Zoomstufen und Ihrem Datenumfang zu berechnen. Siehe diese Zusammenfassung https://gist.github.com/1675606
quelle
Antworten:
Hier ist ein Excel-Blatt in Google Text & Tabellen vom GeoSolutions-Team (http://geo-solutions.blogspot.com/2010/12/estimating-time-and-space-required-to.html).
https://spreadsheets4.google.com/ccc?key=tyCIm7rz8753DUGC9FyOXaw#gid=0
quelle
Ich habe einen Spickzettel erstellt , in dem die Gesamtzahl der Kacheln für bestimmte Zoomstufen aufgeführt ist.
Es hat zwei Tabellen. Eine zeigt die Anzahl der Zoomstufen, die erforderlich sind, um Dinge in einem bestimmten Maßstab anzuzeigen, beginnend mit einer Kachel, die Personen zeigt.
Die andere zeigt die Anzahl der erforderlichen Zoomstufen, wenn mit einer Weltkarte begonnen wird, und progressive Detailebenen:
quelle
Dies ist eine sehr alte Frage, aber es gibt (mindestens) zwei wichtige Vorbehalte, abhängig von der jeweiligen Aufgabe.
(2) ist so ziemlich bereits erklärt, aber als Beispiel habe ich eine Kachelpyramide, bei der die Gesamtdateigröße 168 MB beträgt, die Größe auf der Festplatte jedoch über 600 MB. Es macht es viel wichtiger, (1) richtig zu machen.
Zu (1): Überlegen Sie, ob Ihr 'World File'-Job nur Ländergrenzen umfasst.
Jede Kachel, die keine Grenze darstellt, kann mit einer von zwei "Alt" -Kacheln bedient werden - einer "See" -Kachel (blau) für Orte außerhalb eines Landes oder einer "Block" -Kachel (Füllkachel) für Kacheln, die sich vollständig innerhalb eines Landes befinden nationale Grenze. Es müssen nur Kacheln gerendert werden, die ein Rahmensegment enthalten. Der Rest kann standardmäßig entfernt werden.
Warum ist das? Weil alle Blockkacheln eines bestimmten Typs (Typ in (Meer, Land) oder Typ in (Meer, Land a, Land b usw.)) identisch sind.
Die Blockkachel kann eine Farbe für jedes Land oder eine Farbe für die ganze Welt oder eine leere Kachel sein (wenn Sie die Umrisse des Landes auf einem Hintergrund überlagern).
' Block' -Kacheln müssen nur einmal gerendert werden (z. B. 1 256x256-Kachel, die vollständig mit der gewünschten Farbe gefüllt ist).
Wenn die Kacheln erstellt werden, können Sie testen
(a) wenn sein "Elternteil" - die Kachel mit einer Zoomstufe weniger - vorhanden ist; und
(b) wenn es sich um eine Blockkachel handelt (dh sie ist vollständig mit einer Farbe gefüllt).
In Fall (a) muss die Kachel nicht gerendert werden; Wenn das übergeordnete Element nicht vorhanden ist, lag es daran, dass das übergeordnete Element vollständig eine Blockkachel war und gelöscht wurde.
In Fall (b) (wo das übergeordnete Element vorhanden ist, sodass die Kachel getestet werden muss) kann es, wenn es sich um eine Blockkachel handelt, sicher aus der Kachelpyramide gelöscht werden. (Der Test für die Blockkacheln basiert einfach auf der Dateigröße. Eine 256x256-Kachel, die vollständig aus einer Farbe besteht, hat eine sehr genaue Größe, und die Wahrscheinlichkeit, dass eine Kachel mit dem richtigen Inhalt dieselbe Größe hat, ist Null.)
Das Löschen dieser Kacheln während des Erstellungsprozesses verlängert die Kachel-Rendering-Schleife nur minimal, spart jedoch viel Speicherplatz. Die Alternative besteht darin, alles zu rendern und dann rekursiv in der Pyramide nach Blockkacheln zu suchen und diese zu löschen. Dies dauert länger.
Sobald die Pyramide erstellt ist, kann die Kachelaufrufprozedur standardmäßig die Blockkachel verwenden, wenn nach Kacheln / z / x / y gesucht wird und eine 404 erhalten wird.
Um zu sehen, warum dies der Fall ist, sollten Sie einen 256x256-Zoom = 1 rendern, bei dem der obere Quadrant vollständig leer ist. Sie wissen mit Sicherheit, dass die 4 Kacheln bei Zoom = 2, die denselben Bereich abdecken, ebenfalls leer sind. Ebenso sind die 16 Kacheln bei Zoom = 3 und so weiter.
Während des Kachelvorgangs, bei dem die Kachel eine Blockfarbe hat (oder leer ist), können alle Zeiten mit höheren Zoomstufen ignoriert werden.
Dies spart viel Speicherplatz und viel Zeit beim Kacheln.
Eine Einschränkung dieser Einschränkungen: Bei einem komplexeren Kachelauftrag werden verschiedene Ebenen mit unterschiedlichen Zoomstufen aktiviert. In diesem Fall muss sorgfältig darauf geachtet werden, dass der übergeordnete Test nicht durchgeführt wird, wenn in der Zoomstufe eine neue Ebene im Render-Set enthalten ist.
quelle