Mapbox:如何避免当前缩放级别不可用的图块集的 JavaScript 错误?
Mapbox: How to avoid JavaScript errors for tilesets that aren't available at the current zoom level?
我正在使用 Mapbox GL JS 并从我的 Mapbox 帐户加载 tileset 图层。其中一些 tileset 图层仅适用于 10 到 15 的缩放级别。
我的地图的默认缩放级别是 5,当我加载地图时,我得到一个 JavaScript 控制台错误,说 tileset 是 404ing:
有什么办法可以避免这种情况吗?我不想一直重新创建 tileset 到缩放级别 5,因为它会不必要地增加其大小。
我认为控制台错误不会导致 Chrome 出现任何问题,但我不知道它是否会在其他浏览器中出现。
最简单的方法是替换默认错误处理程序,过滤掉 "Not Found" 消息:
map.on('error', e => {
// Hide those annoying non-error errors
if (e && e.error !== 'Error: Not Found')
console.error(e);
});
I have improved our 404 handling for future releases.
在这种情况下,您仍会看到浏览器提供的 GET https://... 404 (Not Found)
消息,但看不到 Javascript Error: Not Found
异常消息。
如果您使用自己的磁贴服务器,您可以将其设置为无内容 204 HTTP status。
这是在定制的 node.js 磁贴服务器中想要的:
app.use(function(req, res, next) {
if(res.status(404)) {
res.sendStatus(204)
}
});
我正在使用 Mapbox GL JS 并从我的 Mapbox 帐户加载 tileset 图层。其中一些 tileset 图层仅适用于 10 到 15 的缩放级别。
我的地图的默认缩放级别是 5,当我加载地图时,我得到一个 JavaScript 控制台错误,说 tileset 是 404ing:
有什么办法可以避免这种情况吗?我不想一直重新创建 tileset 到缩放级别 5,因为它会不必要地增加其大小。
我认为控制台错误不会导致 Chrome 出现任何问题,但我不知道它是否会在其他浏览器中出现。
最简单的方法是替换默认错误处理程序,过滤掉 "Not Found" 消息:
map.on('error', e => {
// Hide those annoying non-error errors
if (e && e.error !== 'Error: Not Found')
console.error(e);
});
I have improved our 404 handling for future releases.
在这种情况下,您仍会看到浏览器提供的 GET https://... 404 (Not Found)
消息,但看不到 Javascript Error: Not Found
异常消息。
如果您使用自己的磁贴服务器,您可以将其设置为无内容 204 HTTP status。
这是在定制的 node.js 磁贴服务器中想要的:
app.use(function(req, res, next) {
if(res.status(404)) {
res.sendStatus(204)
}
});