Mapbox: как избежать ошибок JavaScript для наборов плиток, которые недоступны при текущем уровне масштабирования?
Я использую Mapbox GL JS и загружаю слои набора листов из своей учетной записи Mapbox. Некоторые из этих слоев набора плиток доступны только для уровней масштабирования от 10 до 15.
Уровень масштабирования моей карты по умолчанию равен 5, и когда я загружаю карту, я получаю ошибку консоли JavaScript, говоря, что набор тайлов - 404ing:
Есть ли способ, которым я могу избежать этого? Я не хочу полностью воссоздавать набор тайлов до уровня 5, так как это излишне увеличит его размер.
Я не думаю, что ошибка консоли вызывает какие-либо проблемы в Chrome, но я не знаю, будет ли это в других браузерах.
3 ответа
Самый простой способ - заменить обработчик ошибок по умолчанию, отфильтровав сообщение "Не найдено":
map.on('error', e => {
// Hide those annoying non-error errors
if (e && e.error !== 'Error: Not Found')
console.error(e);
});
Я улучшил нашу обработку 404 для будущих выпусков.
В этом случае вы все равно увидите браузер GET https://... 404 (Not Found)
сообщение, но не Javascript Error: Not Found
сообщение об исключении.
Если вы используете свой собственный сервер плиток, вы можете настроить его на предоставление статуса HTTP No Content 204.
Вот что он хотел бы сделать на собственном сервере плиток node.js:
app.use(function(req, res, next) {
if(res.status(404)) {
res.sendStatus(204)
}
});