Как изменить настройки line-dasharray в MapboxGL, используя свойства пользователя? - PullRequest
0 голосов
/ 15 мая 2019

Я попытался изменить настройки line-dasharray, используя следующий код,

'line-dasharray': [
    "case", 
    ['==', ['get', "user_class_id"], 'laneway'],[0.2,2],[0.3,2] 
 ]

Это выдает эту ошибку,

Error: layers.gl-draw-line-active.hot.paint.line-dasharray[2][0]: Expression name must be a string, but found number instead. If you wanted a literal array, use ["literal", [...]].

Поэтому я исправил код в соответствии с советом по ошибке,

  'line-dasharray': [
      "case", 
      ['==', ['get', "user_class_id"], 'laneway'],['literal',[0.2,2]],['literal',[0.3,2]] 
  ]

И это дает мне эту ошибку,

evented.js:136 Error: layers.gl-draw-line-active.hot.paint.line-dasharray: data expressions not supported

У кого-нибудь есть идеи, как это исправить?

1 Ответ

1 голос
/ 15 мая 2019

См. Документацию API по адресу https://docs.mapbox.com/mapbox-gl-js/style-spec/#paint-line-line-dasharray. Стили, управляемые данными, для строки-дефиса не поддерживаются.

Существует открытая проблема для этой поддержки на https://github.com/mapbox/mapbox-gl-js/issues/3045, за которой вы можете следить за обновлениями.

Тем временем вы можете разделить этот слой на несколько слоев с разными фильтрами для достижения того же результата.

...