teamzac / laravel-tileserver
使用您自己的mbtiles资源将您的Laravel应用程序转换为XYZ瓦片服务器。
Requires
- php: ^7.3|^8.0
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-29 05:46:18 UTC
README
这是一个小型包,允许您的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端点,显示所有可用的瓦片集。默认情况下,此选项是关闭的。有关更多详细信息,请参阅配置部分。
配置
提供了三个配置设置
- 您的.mbtiles数据文件存储的位置
- 用于端点的路由前缀
- 是否公开列出所有可用瓦片集的JSON端点
您可以通过环境变量设置所有这些设置,或者发布配置文件并在那里管理它们。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件chad@zactax.com联系,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。
Laravel包模板
本软件包是使用Laravel Package Boilerplate生成的。