Як змінити колір функції у відкритих шарах?


11

Я завантажую файл geojson у openlayers, щоб показати кілька полігонів. З цього файлу я також створюю список усіх назв цих багатокутників.

Тепер я хочу змінити колір багатокутника, вибравши його зі списку (натиснувши на ім’я).

Я намагався створити стиль ( http://docs.openlayers.org/library/feature_styling.html ), але я не міг дізнатися, як додати цей стиль до полігону. Як я можу це зробити?

Відповіді:


7

Ви можете просто створити набір хеш-символів стильового символу та призначити його вибраному багатокутнику перед тим, як додати його до шару:

var selected_polygon_style = {
    strokeWidth: 5,
    strokeColor: '#ff0000'
    // add more styling key/value pairs as your need
};

selectedFeature.style = selected_polygon_style;
layer.addFeatures([selectedFeature]);

На цій сторінці ( http://docs.openlayers.org/library/feature_styling.html ) ви можете знайти багато інформації про властивості стилю, які ви можете змінити:

  • fillColor
  • fillOpacity
  • обведення кольором
  • тактОмісткість
  • ширина ходу
  • інсультLinecap
  • штрихДашстиль
  • ...

9
Але що робити, якщо це вже на шарі? Я знайшов таке рішення: mylayer.drawFeature (mylayer.getFeatureById (id), {fillColor: "# 00ffff", strokeColor: "# 00ffff"});
jlai79

так, ти маєш рацію, ти просто перемальовуєш його новим стилем.
mfdev

2

Використовуючи відмінок в іншій відповіді.

Просто зміна використання "setStyle ()"

Ця справа спрацювала для мене.

var selected_polygon_style = {
    strokeWidth: 5,
    strokeColor: '#ff0000'
    // add more styling key/value pairs as your need
};

selectedFeature.setStyle(selected_polygon_style);
layer.addFeatures([selectedFeature]);

Це не спрацювало для мене, я отримав "Uncaught TypeError: feature.setStyle - це не функція"
Matthew Lock

1

Whit OpenLayers 4.6.5 для зміни кольору я використовую це:

myLayer.getSource().getFeatures()[1].setStyle(new ol.style.Style({
      image: new ol.style.Icon(/** @type {module:ol/style/Icon~Options} */({ // /** @type {olx.style.IconOptions} */
        color: '#00ffff', //  #FF0000
        crossOrigin: 'anonymous',
        src: '/img/dot.png'
      }))
    }));

getFeatures()[1]є одним із елементів моєї особливості. Якби я змінив ВСІ функції, то я би використав цикл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.