Tiles@home/How Oceantiles work

From OpenStreetMap Wiki
Jump to navigation Jump to search

In the Tiles@Home project there are some hints necessary to tell clients what to make of certain coastline situations, since it is impossible to see the "big picture" of a continental coastline when rendering the world one z12 tile(set) at a time.

So there have to be a few rules:

  • Coastline has to have the water to the right side (closes clockwise around water and counter-clockwise around land)
  • Coastline cannot branch
  • Coastline cannot have gaps. Where one coastline way ends, on the same node another one must start (and only one)

Since that's not enough for corner cases like islands or completely closed lakes tagged as coastline or open sea, where we do not have any hint wether it is, in fact sea, or unmapped land for that matter, we need some other hinting mechanism.

Enter oceantiles_12.dat: This file records in a 2-bit value for every tile at zoom 12 wether it is land, sea, mixed, or unknown. While there are rather few cases of "unkown" left, there are quite a few tiles marked wrongly.

And since for certain arbitration cases it is necessary to look up neighboring tiles in oceantiles_12.dat, it's important that the data in it is correct.

Updates to the file

Updates are managed through a 4096x4096 px png file where each pixel corresponds to exactly one tile, while the colour corresponds to the status: Green for land, blue for sea, white for mixed, and black for unknown.

png2tileinfo from svn is the program you can use to manipulate the png, and create a new oceantiles_12.dat file from it, see the README there. You need svn commit access to actually make changes. A mail to the tilesathome list stating which tiles should be set to what and why will also get the job done.

When to set what

A short overview of how Tiles should be marked according to what data is in the area:

  • nothing: either set sea or land, depending on what's there in reality. If you *know* a coastline runs through the tile area, but is not mapped yet, you can also set mixed.
  • coastline entering and exiting the tile: mixed, although if it's coastline of a larger piece of land, the setting is not important for this tile, but might be for neighboring tiles.
  • islands, none sitting on the edge of the tile: sea, this is especially important in the case of some archipelago or group of islands with islands in neighboring tiles.
  • islands, some sitting on the edge of the tile: sea or mixed with a preference on sea.
  • islands near the coast: if the coastline is reaching into the tile, that's basically "coastline entering and exiting the tile", so set mixed, otherwise sea
  • lakes fully contained in tile area: set as land and seriously consider tagging the lakes as natural=water instead.
  • lakes covering a tile completely: if no nodes of the lake exist in the tile, set to sea