Haskell library for interfacing with MapBox MBTiles files.
Documentation available on Hackage.
- Getting tiles by zoom, x, and y.
- Writing new tiles by zoom, x, and y.
- Updating existing tiles by zoom, x, and y.
- Accessing metadata from the mbtiles file.
Reading, writing, and updating tiles:
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString.Lazy as BL
import Database.Mbtiles
main = do
let myData = "myTileData" :: BL.ByteString
let tile = Tile (Z 0, X 0, Y 0)
runMbtiles "my/path/to/file.mbtiles" $ do
maybeTileData <- getTile tile
case maybeTileData of
Nothing -> writeTile tile myData
(Just d) -> updateTile tile $ BL.init d
Getting metadata:
import Control.Monad.IO.Class
import Database.Mbtiles
main = do
runMbtiles "my/path/to/file.mbtiles" $ do
liftIO . print =<< getName
liftIO . print =<< getType
liftIO . print =<< getFormat
- Improve database error handling.
- Investigate usage as a performant tile server.
- Add tests.