Martijn van Oosterhout wrote:
> - Clients create a blank sea/land tile whenever they find something
> blank. The client could immediately check to see if the tile above it
> is also blank and if so store a 0-byte file instead. That's one less
> entry in the DB to clean up later.

Sorry, I don't really get this. If the next-lower zoom level is blank
then no new entry for the higher zoom level will be inserted anyway.

> - When the server has the list of blank tiles to insert, it could run
> one pass over the list to see if it's mostly sea of mostly land and
> whatever it is, insert a blank tile with that type at zoom-12 and then
> only insert the other types.

Yes it could do that. My idea was to not take that hit at each insert,
but rather run a cleanup script periodically that does these kinds of
optimizations with lower priority. Once a z12 tile is marked as blank
land/sea by such a script subsequent blankness entries at higher zoom
levels become noop's.

>> For the record, I ran the cleanblanktiles script yesterday, so the blank
>> tile db is as clean as that code makes it. I don't know if there are
>> further optimizations that can be made there -- perhaps someone else can
>> comment -- but I've done everything I know how to do.
> 
> I'd never looked at the cleanblanktiles before but it certainly looks
> like its missing some possible optimisations. Especially my second
> suggestion above would remove many z17 blank tiles, which are half the
> current DB.

Yes, the script only performs some optimizations, namely removing all
redundant entries (that is those which have the same blankness
information at a lower zoom level). I planned to add -but never got to
it- a "bubbling up" of blankness information which would remove many
entries.

Bubble up:
- if 4 neighbouring tiles have the same blankness, mark the
corresponding 'z-1' tile as blank and remove the 4 tiles at 'z'.
- if 3 (or 2?) neighbouring tiles have the same blankness, and the rest
of the tiles are non-empty, mark the corresponding 'z-1' tile as blank
and remove the empty tiles at 'z'.

I just never got to implementing it.

Sebastian

_______________________________________________
Tilesathome mailing list
[email protected]
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/tilesathome

Reply via email to