MBTiles Format?

Hallo

ich habe das MBTilese Format entdeckt und frage mich nun welche Bedeutung das hat. Da werden Tiles in einer SQLite-Datenbank abgelegt. Das gefällt mir für meine Zwecke ganz gut. Normalerweise werden die Tiles mit zB.: http://tile.openstreetmap.org/{$z}/{$x}/{$y}.png adressiert/ benannt und abgelegt. Wie heißt eigentlich dieses Format ? OSM-Tile-Format ?
Nun zu meiner Frage:
Im MBTiles Format wird das in der Datenbank mit rowid,zoom_level,tile_column,tile_row,tile_data abgelegt, wobei

zoom_level … {$z} entspricht
tile_column… {$x} entspricht

…aber tile_row entspricht nicht {$y}

kann mir jemand erklären wie das umgerechnet wird bzw. berechnet wird. Aus der MBTiles-Spezifikation werde ich da nicht schlau… Die Formate sind mir unbekannt.

MfG
Achim

1 Like

Hallo Achim

MBTiles wird bei http://tilemill.com verwendet.
Vielleicht findest du in http://tilemill.com/manual.html etwas dazu.

Vielleicht hilft es.
Edbert /EvanE/

Hallo @Edbert,

in dieser Ecke war ich schon.Bin aber daraus nicht schlauergeworden.

MfG
Achim

Vielleicht ist eines das Google Format und eines TMS.
Da ist x gleich aber y nicht.

Liegt dran dass der Ursprung mal oben link, mal unten links ist.

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Ich hatte mal fas die selbe Frage zu MOBAC:
Ich hatte dann einen kleinen Konverter fuer Mobac geschrieben:
http://sourceforge.net/tracker/index.php?func=detail&aid=3139029&group_id=238075&atid=1105497

Vielleicht hilft die dass.
Thomas

Hallo

@Thomas ich habe mal in der MOBAC Source gestöbert. MOBAC unterstützt dieses Format seit neuestem. Dort meine ich folgendes zur Umrechnung gefunden zu haben:

===>> y = (1 << zoom) - y - 1;

Ich bin eben auf der Suche nach eine Beschreibung. Nur das anzuwenden widerstrebt mir. Ich Suche nach ner Erklärung dafür… Ich hatte eben auch für NaviComputer die Basis für das SQLITE Plugin geliefert. Ich möchte deshalb auch das MBTiles Format verstehen und für meine Zwecke verwenden.

MfG
Achim

Hallo Achim,
ich finde die interaktive Karte auf http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
zeigt den Unterschied sehr gut. Da sieht man googletiles haben oben links 0,0
TMS hat unten links 0,0
Das sieht man auch gut, wenn man die Zoomstufe aendert.

Am Ende der Seite ist auch entsprechender Python Code fuer die Umrechnung:

def GoogleTile(self, tx, ty, zoom):
    "Converts TMS tile coordinates to Google Tile coordinates"
    
    # coordinate origin is moved from bottom-left to top-left corner of the extent
    return tx, (2**zoom - 1) - ty

Happy Mapping,
Thomas

Hi @Thomas

genau so ne Erklärung habe ich gesucht.

Vielen Dank
Achim