Dies ist eine sehr alte Frage, aber es gibt (mindestens) zwei wichtige Vorbehalte, abhängig von der jeweiligen Aufgabe.
- Die Aufgabe kann dazu führen, dass eine (sehr) große Anzahl leerer Kacheln ohne spezifische Verwaltung des Kachelerstellungsprozesses gerendert wird.
- Die Größe einer Kachelpyramide auf der Festplatte kann aufgrund der minimalen Clustergröße von 4 KB (auch als Blockgröße bezeichnet) auf den meisten Speichern viel (mehr als 100%) größer sein als erwartet.
(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.