teamzac/laravel-tileserver

使用您自己的mbtiles资源将您的Laravel应用程序转换为XYZ瓦片服务器。

dev-master 2022-05-29 18:36 UTC

This package is auto-updated.

Last update: 2024-08-29 05:46:18 UTC


README

Latest Version on Packagist

这是一个小型包,允许您的Laravel应用程序通过使用.mbtiles数据集作为源来提供XYZ瓦片服务器。它受到maptiler/tileserver-php的启发,这有助于了解最小要求,但它有点混乱,不适合直接应用于现有项目。

然而,这个包是为我们的特定用例构建的,功能不如上面链接的那个全面。它仅处理.mbtiles文件,元数据验证也不够健壮,因为我们对自己的源数据创建有更多控制。如果我们的需求发生变化,它可能会在未来进行扩展。但如果您只是想将您的mbtiles作为Mapbox或其他东西的矢量层来提供,请随意尝试一下!

更多信息

您可以使用Mapbox的Tippecanoe将GeoJSON、CSV和其他文件格式创建自己的.mbtiles数据集。

各种映射库允许您添加自定义层。请参阅相应文档了解每个如何处理它们。

安装

您可以通过composer安装此包

composer require teamzac/laravel-tileserver

它需要Laravel 8+。

使用

该包的使用非常简单。服务提供者将被自动发现。您可以发布配置文件或简单地使用环境变量覆盖以下三个设置(见下文)。

然后,只需在路由文件或RouteServiceProvider中注册路由即可

Route::tileserver();

如果您想在路由周围包装某些中间件,例如身份验证中间件,您也可以这样做

Route::middleware('auth')->group(function() {
    Route::tileserver();
});

这将向您的应用程序公开两个路由(如果您选择,则可能有三个)

/tileserver/{tileset}/{z}/{x}/{y}.pbf

这是您可以在自定义地图层中使用的瓦片模板。

/tileserver/{tileset}.json

这是一个JSON端点,返回所有可用瓦片集的元数据。您可以在配置文件中选择是否隐藏此路由。

/tileserver/tilesets.json

您还可以公开此路由以提供一个JSON端点,显示所有可用的瓦片集。默认情况下,此选项是关闭的。有关更多详细信息,请参阅配置部分。

配置

提供了三个配置设置

  1. 您的.mbtiles数据文件存储的位置
  2. 用于端点的路由前缀
  3. 是否公开列出所有可用瓦片集的JSON端点

您可以通过环境变量设置所有这些设置,或者发布配置文件并在那里管理它们。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请通过电子邮件chad@zactax.com联系,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件

Laravel包模板

本软件包是使用Laravel Package Boilerplate生成的。