OpenLayers 4.6.5 Установка цвета элемента - PullRequest
0 голосов
/ 09 января 2019

Итак, я пытаюсь установить цвет объекта следующим образом:

addInteraction() {
    this.style = new Style({
      fill: new Fill({
        color: this.fillColour,
      }),
      stroke: new Stroke({
        color: this.lineColour,
        width: 2
      }),
     image: new CircleStyle({
        radius: 7,
        fill: new Fill({
          color: this.fillColour
        }),
        stroke: new Stroke({
          color: this.lineColour
        })
      })
    })
    this.draw = new Draw({
      source: this.vectorSource,
      style: [this.style],
      type: this.selectedShape,
    })
    this.coreMap.map.addInteraction(this.draw)
    this.snap = new Snap({ source: this.vectorSource })
    this.coreMap.map.addInteraction(this.snap);
    this.coreMap.map.addInteraction(this.modifyLayer);
  }

Теперь, когда я рисую объект, скажем, что это круг с красной линией и синей заливкой, он покажет круг с красной линией и синей заливкой, пока я рисую его, но как только он будет завершен, он по умолчанию будет openlayers по умолчанию окрашивает синий цвет в голубой.

Если я применю стиль к vectorLayer, он сохранится, но я хочу, чтобы функция удерживала цвет, а не слой, так как мне нужно несколько объектов с несколькими цветами на одном слое, я пробовал несколько разных вещей, таких как настройка цвет вне объекта newDraw с помощью простого метода set или установка стиля с помощью функции стиля внутри рисованного объекта без удачи.

1 Ответ

0 голосов
/ 10 января 2019

Вы можете назначить стиль непосредственно для функции. Хорошее время и место для этого - слушатель drawend:

draw.on('drawend', function(e) {
  e.feature.setStyle(style);
});

Поэтому, когда вы заканчиваете рисовать элемент, он получает свой стиль.

...