如何从.mbtiles解析和加载tile?

时间:2015-11-18 17:09:10

标签: javascript php leaflet mapbox

我一直在尝试使用mbtiles-php脚本从.mbtiles文件解析并加载tile,但没有取得多大成功。遵循存储库站点上的说明。

在.htaccess和tileserver.php所在的文件夹上安装了一个foo.mbtiles文件。另外,这就是我加载瓷砖的方式:

var map = $(window).load(function() {
L.mapbox.map('map', './tiles/foo.mbtiles')
.setView([74.2343, -54.43534], 14);
});

这是console log

由于L.mapbox.map不解析.mbtiles,因此更改为L.tileLayer。这是新代码:

$(window).load(function() {
var map = L.map('map').setView([74.2343, -54.43534], 14);
L.tileLayer('./tiles/foo.mbtiles/{z}/{x}/{y}.png', {
maxZoom: 19
}).addTo(map);
});

我现在在我的控制台上获得了其中的几个:

Failed to load resource: the server responded with a status of 404 (Not Found)
http://43.000.00.0/tiles/foo.mbtiles/13/3888/3139.png

我的服务器上禁用了.htaccess使用情况。启用后,我现在变为空白tiles

2 个答案:

答案 0 :(得分:0)

L.mapbox.map的第二个参数接受四个内容之一:Mapbox.com Map ID,逗号分隔的Mapbox.com ID列表,TileJSON url或TileJSON对象。您没有传递任何这些,而是​​传递给MBTiles文件的位置。

如果您要从PHP服务器的MBTiles文件中提供磁贴,您应该添加L.tileLayer('http://$MY_LOCAL_SERVER_LOCATION/{z}/{x}/{y}.png').addTo(map); http 这显然取决于您当地的PHP配置。

答案 1 :(得分:0)

以下代码似乎与 Leaflet

一起使用
$(window).load(function() {
var map = L.map('map').setView([74.2343, -54.43534]);
L.tileLayer('./tiles/foo/{z}/{x}/{y}.png', {
maxZoom: 15
}).addTo(map);
});

必须在您的服务器上启用PDO和GD,以及.htaccess