如何使用本地图块进行地图

时间:2015-10-26 09:14:59

标签: html leaflet gis openstreetmap mapbox

我正在使用带有openstreet地图的mapbox来创建我的地图。但我想把瓷砖放在本地。从而减少了流量和加载地图所需的时间。 我使用Mobile atlas creator MOBAC来获取jpg格式的图块,这是我通常使用的HTML

var cities = new L.LayerGroup(); var mbAttr = 'Map data &copy; <a href="http://openstreetmap.org">OpenstreetMap</a> contributors, ' + '
<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'Imagery © <a href="http://mapbox.com">Mapbox</a>', mbUrl = 'https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png'; var grayscale = L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}',
{id: 'remote-sensing.n8k508ak', attribution: mbAttr, accessToken: 'pk.eyJ1IjoicmVtb3RlLXNlbnNpbmciLCJhIjoiYWNiYzg0ZWU2Mjk3ZTU5NjE4MmQyZWEzZTY2ZWNlYjIifQ.U7mp4MXdcjaIwW_syAqriQ'}) , streets = L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}',
{id: 'remote-sensing.84f6c85a', attribution: mbAttr, accessToken: 'pk.eyJ1IjoicmVtb3RlLXNlbnNpbmciLCJhIjoiYWNiYzg0ZWU2Mjk3ZTU5NjE4MmQyZWEzZTY2ZWNlYjIifQ.U7mp4MXdcjaIwW_syAqriQ'});

关于如何做到这一点的任何想法。提前谢谢

1 个答案:

答案 0 :(得分:1)

您的需求是一个常见的用例,只要您的文件系统位于文件系统的某个位置,就可以轻松实现,只要它们仍然可以作为文件名或访问路径的一部分使用坐标。 / p>

使用MOBAC是一种名为&#34; tile scrapping&#34;:的技术,确保它与您的磁贴源的使用条款兼容!

最简单的解决方案是以保留路径结构的格式废弃磁贴。例如&#34; OSMTracker磁贴存储&#34;。它将为每个缩放级别创建一个文件夹,然后为每个X值创建一个文件夹,然后为每个Y值创建一个图块。

然后只需用您的文件夹结构替换您的URL(L.tileLayer的第一个参数)。假设您已将本地磁贴保存在与HTML页面相同的文件夹中,则URL将类似于"{z}/{x}/{y}.png"。不再需要访问令牌。