跳转到主要内容

MapBox Mbtiles 工具

项目描述

Mapbox MBtiles 工具

一个用于处理Mapbox mbtiles v1.1的Python 2.7和3库

Build Status Coverage Status

功能

提供了一个轻量级的Python API,用于读取和写入mbtiles文件。

Mapbox mbtiles v1.1 允许您将地理数据以渲染的图像瓦片或矢量瓦片的形式存储,以及相关的元数据。

安装

pip install pymbtiles

要从GitHub的master分支安装,请使用pip

pip install git+https://github.com/consbio/pymbtiles.git#egg=pymbtiles --upgrade

用法

Python API

以读取模式打开并读取瓦片

from pymbtiles import MBTiles
with MBtiles('my.mbtiles') as src:
    tile_data = src.read_tile(z=0, x=0, y=0)

以字节形式返回瓦片数据。

以写入模式打开(现有文件将被覆盖)

with MBtiles('my.mbtiles', mode='w') as out:
    out.write_tile(z=0, x=0, y=0, tile_data)

或一次性写入多个瓦片

from pymbtiles import MBTiles, Tile

tiles = (
    Tile(z=1, x=0, y=0, tile_data=first_tile),
    ...
)

with MBtiles('my.mbtiles', mode='w') as out:
    out.write_tiles(tiles)

使用r+模式进行读取和写入。

元数据存储在mbtiles实例的meta属性中

with MBtiles('my.mbtiles') as src:
    metadata = src.meta

此元数据存储在mbtiles文件中的metadata表中,并包含mbtiles规范下的多个必需或可选记录。

更新元数据

with MBtiles('my.mbtiles', 'r+') as out:
    out.meta['some_key'] = 'some_value'

您可以通过传入新的dict对象同时设置多个值

with MBtiles('my.mbtiles', 'w') as out:
    out.meta = my_metadata_dict

列出可用瓦片

列出瓦片集中的可用瓦片

with MBtiles('my.mbtiles') as src:
    for tile_coords in src.list_tiles():  # [TileCoordinate(z, x, y)...]
        ...

警告:对于大型瓦片集,这可能会超过可用内存。

要列出大型瓦片集的可用瓦片集,请使用

with MBtiles('my.mbtiles') as src:
    for batch in src.list_tiles_batched():
        for tile_coords in batch: # [TileCoordinate(z, x, y)...]
            ...

集合操作

ops模块提供了用于在瓦片集上执行集合操作的extenduniondifference函数。

使用来自第二个瓦片集中的新瓦片扩展瓦片集

extend(source_filename, target_filename)

从左侧和右侧瓦片集中组合唯一瓦片创建新的瓦片集

union(left_filename, right_filename, out_filename)

从左侧瓦片集中创建新的瓦片集,其中不包含右侧瓦片集中的瓦片

difference(left_filename, right_filename, out_filename)

瓦片方案

瓦片按照xyz瓦片方案输出到mbtiles格式。

可能有用

  • mbtileserver:一个轻量级的Go瓦片服务器
  • tpkutils:一个用于将ArcGIS瓦片缓存转换为mbtiles的库

变更

0.5.0

  • 添加了zoom_rangerow_rangecol_range以提供有关瓦片集中可用瓦片的基本信息

0.4.0

  • 添加了list_tiles以列出瓦片,以及list_tiles_batch以批量列出瓦片
  • 添加了包含extenduniondifference函数的ops模块

0.3.0

  • 现在默认覆盖所有写入操作,包括元数据和瓦片

致谢

受以下启发

node-mbtiles派生的mbtiles数据库创建SQL

许可证

请参阅LICENSE.md

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

pymbtiles-0.5.0.tar.gz (7.1 kB 查看哈希)

上传时间

构建分发

pymbtiles-0.5.0-py3-none-any.whl (9.0 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面