跳转到主要内容

Datasette的瓦片服务器,用于从MBTiles包中提供服务瓦片

项目描述

datasette-tiles

PyPI Changelog Tests License

Datasette插件,用于服务MBTiles地图瓦片

安装

在Datasette相同的环境中安装此插件。

$ datasette install datasette-tiles

演示

您可以在https://datasette-tiles-demo.datasette.io/-/tiles尝试此插件

使用方法

此插件会扫描所有连接到Datasette的数据库文件,以查看其中是否有有效的MBTiles数据库。

然后,它可以在以下URL中从这些数据库提供服务瓦片

/-/tiles/db-name/zoom/x/y.png

/-/tiles/db-name中可以找到每个数据库的示例地图,以演示该数据库配置的最小和最大缩放级别 - 这也可以通过数据库的表和数据库操作菜单访问。

访问/-/tiles以查看附加有效数据库的索引页面。

您可以使用datasette-basemap插件来获取默认的basemap瓦片集,处理0到6级的缩放级别,使用OpenStreetMap。

瓦片坐标系统

在线地图中常用两种瓦片坐标系统。第一个由OpenStreetMap和Google Maps使用,第二个来自名为瓦片地图服务或TMS的规范。

两个系统都使用三个组件:z/x/y - 其中z是缩放级别,x是列,y是行。

区别在于y值的计数方式。OpenStreetMap中y=0位于顶部。TMS中y=0位于底部。

示例说明:在缩放级别2时,地图分为16个总瓦片。OpenStreetMap方案按如下方式编号

0/0  1/0  2/0  3/0
0/1  1/1  2/1  3/1
0/2  1/2  2/2  3/2
0/3  1/3  2/3  3/3

TMS方案如下

0/3  1/3  2/3  3/3
0/2  1/2  2/2  3/2
0/1  1/1  2/1  3/1
0/0  1/0  2/0  3/0

datasette-tiles可以使用这两种标准之一来提供瓦片。对于OpenStreetMap / Google Maps 顶部为0的系统,使用以下URL

/-/tiles/database-name/{z}/{x}/{y}.png

对于底部为0的TMS系统,使用此URL

/-/tiles-tms/database-name/{z}/{x}/{y}.png

配置Leaflet瓦片层

以下JavaScript将配置一个Leaflet瓦片层以用于此插件

var tiles = leaflet.tileLayer("/-/tiles/basemap/{z}/{x}/{y}.png", {
  minZoom: 0,
  maxZoom: 6,
  attribution: "\u00a9 OpenStreetMap contributors"
});

瓦片堆栈

datasette-tiles可以被配置为从多个附加的MBTiles文件中提供瓦片,按顺序在每个数据库中搜索瓦片,如果找不到该瓦片,则回退到下一个。

要查看此功能的演示,请访问https://datasette-tiles-demo.datasette.io/-/tiles-stack并放大到日本。一旦您放大到缩放级别6和7,它应该开始显示Stamen的Toner地图

/-/tiles-stack/{z}/{x}/{y}.png端点提供了此功能。

如果您这样启动Datasette

datasette world.mbtiles country.mbtiles city1.mbtiles city2.mbtiles

来自/-/tiles-stack路径的任何瓦片请求将首先检查city2数据库,然后是city1,然后是country,然后是world

如果您已安装datasette-basemap插件,则它将受到特殊处理:始终将basemap数据库作为最后一个数据库检查瓦片。

您可以选择使用tiles-stack-order插件设置显式配置顺序,而不是依赖于数据库附加的顺序。将以下内容添加到您的metadata.json文件中

{
    "plugins": {
        "datasette-tiles": {
            "tiles-stack-order": ["world", "country"]
        }
    }
}

然后您可以像这样运行Datasette

datasette -m metadata.json country.mbtiles world.mbtiles

此端点使用OpenStreetMap / Google Maps坐标系统提供瓦片。要使用TMS坐标系统加载瓦片,请使用此端点。

/-/tiles-stack-tms/{z}/{x}/{y}.png

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-tiles
python3 -mvenv venv
source venv/bin/activate

或者如果您使用pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

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

源分布

datasette-tiles-0.6.1.tar.gz (10.0 kB 查看哈希值)

上传时间

构建分布

datasette_tiles-0.6.1-py3-none-any.whl (9.3 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面