карта меняет цвет круга динамически при изменении значения свойства - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь сделать слой mapbox, чтобы изменить цвет кругов при изменении значения свойства.Но цвет круга не изменился.

Я использую mapbox-gl-draw

Здесь jsbin: https://jsbin.com/lojuwak/edit?html,output

Здесь стиль слоя свыражения в кружочковом цвете для изменения цвета в соответствии со значением

{
  'id': 'gl-draw-point-inactive',
  'type': 'circle',
  'filter': ['all',
    ['==', 'active', 'false'],
    ['==', '$type', 'Point'],
    ['==', 'meta', 'feature'],
    ['!=', 'mode', 'static']
  ],
  'paint': {
    'circle-radius': 12,
    'circle-blur': 0.5,      
    'circle-color': ["case",
        ['!',['has', 'isProcessed']], '#FF0000',
        '#214AED'
      ]
  }

Моими данными являются геоджоны, для которых определено свойство isProcessed со значением not.

Эта часть работает нормально, когдаПервоначально я загружаю geojson.

Проблема, возникающая при изменении свойства add addroperty для выбранной функции

Я добавляю свойство isProcessed функции, выполняя:

selectedFeature = this.draw.getSelected();
selectedFeature.features[0].properties.isProcessed = true;
this.draw.add(selectedFeature);

Но цвет обновленной функции не меняется.

Какой шаг я пропустил?

Спасибо

1 Ответ

0 голосов
/ 25 мая 2018

Если для opts.userProperties задано значение true, свойства функции также будут доступны для стилизации.Все пользовательские свойства имеют префикс user_, чтобы убедиться, что они не конфликтуют со свойствами Draw.

[https://github.com/mapbox/mapbox-gl-draw/blob/master/docs/API.md#styling-draw]

Поэтому необходимо добавить user_ префикс к свойству в стилях:

'paint': {
    'circle-radius': 12,
    'circle-blur': 0.5,      
    'circle-color': ["case",
        ['!',['has', 'user_isProcessed']], '#FF0000',
        '#214AED'
      ]
}

[https://jsfiddle.net/c9kdf51t/]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...