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)
  }
});
Другие вопросы по тегам