The mbtiles package

[Tags:bsd3, library, test]

Read and manipulate MBTiles files and associated metadata.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.4.0.0
Dependencies base (>=4.7 && <5), bytestring, directory, monad-control, mtl, resource-pool, sqlite-simple, text, transformers, unordered-containers [details]
License BSD3
Copyright Copyright: (c) 2017 Joe Canero
Author Joe Canero
Maintainer jmc41493@gmail.com
Category Database
Home page https://github.com/caneroj1/mbtiles#readme
Source repository head: git clone https://github.com/caneroj1/mbtiles
Uploaded Thu Aug 3 23:43:34 UTC 2017 by jmc41493
Distributions NixOS:0.4.0.0
Downloads 121 total (121 in the last 30 days)
Votes
0 []
Status Docs available [build log]
Last success reported on 2017-08-04 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for mbtiles

Readme for mbtiles-0.4.0.0

mbtiles

Haskell library for interfacing with MapBox MBTiles files.

Documentation available on Hackage.

Functionality

  • 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.

Basic Usage

Reading, writing, and updating tiles:

{-# LANGUAGE OverloadedStrings #-}

import qualified Data.ByteString.Lazy as BL
import           Database.Mbtiles

main = do
  let myData = "myTileData" :: BL.ByteString
  runMbtiles "my/path/to/file.mbtiles" $ do
    maybeTileData <- getTile (Z 0) (X 0) (Y 0)
    case maybeTileData of
      Nothing  -> writeTile (Z 0) (X 0) (Y 0) myData
      (Just d) -> updateTile (Z 0) (X 0) (Y 0) $ 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

Future Work

  • Improve database error handling.
  • Investigate usage as a performant tile server.
  • Add tests.