2016-12-21 4 views
0

Я обновил приложение до последней версии mapbox-gl-js, и оно сломало его.Избегайте ошибок запросов на ошибки, возникающих на несуществующих уровнях

queryRenderedFeatures изменился, и теперь он устраняет ошибки на несуществующих слоях.

По нескольким причинам мы не можем предсказать, какие слои будут существовать в этой точке (некоторые из них построены динамически).

Есть ли способ обойти это поведение?

В принципе, мы хотели бы иметь возможность сделать ниже (один из слоев там отсутствует) и получить результат.

Thx, JM

features = map.queryRenderedFeatures([{ 
    x: x1, 
    y: y1 
}, { 
    x: x2, 
    y: y2 
}], { 
    layers: [ 
     'Layer A', 
     'Possibly non existing Layer B', 
     'Layer C' 
    ] 
}); 

ответ

1

Вы могли бы мог отфильтровать слои, которые не существуют, как это:

features = map.queryRenderedFeatures(
    [{x: x1, y: y1}, {x: x2, y: y2}], 
    {layers: 
     ['Layer A', 'Possibly non existing Layer B', 'Layer C'] 
     .filter((layer)=>{map.getLayer(layer)})] 
}); 

Это должно избежать вызывая ошибку

https://jsfiddle.net/o8fLvh7e/

+0

Я попробую, чтобы thx – jmc34

+0

В моем случае co de был filter (function (l) {return map.getLayer (l)! = null}), но он сработал! Большое спасибо. – jmc34

 Смежные вопросы

  • Нет связанных вопросов^_^