ओपनर में एक फीचर का रंग कैसे बदलें?


11

मैं कुछ पॉलीगॉन दिखाने के लिए ओपनरों में एक जियोजोन फ़ाइल लोड कर रहा हूं। इस फाइल से मैं इन बहुभुजों के सभी नामों की एक सूची बनाता हूं।

अब मैं सूची से चुने जाने पर बहुभुज का रंग बदलना चाहता हूं (नाम पर क्लिक किया गया)।

मैंने जो कोशिश की है वह एक शैली ( 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 ) आप अपने द्वारा संशोधित की जा सकने वाली शैली के गुणों के बारे में अधिक जानकारी प्राप्त कर सकते हैं:

  • रंग भरें
  • fillOpacity
  • स्ट्रोक का रंग
  • strokeOpacity
  • रेखा की चौड़ाई
  • strokeLinecap
  • strokeDashstyle
  • ...

9
लेकिन क्या होगा अगर यह पहले से ही परत पर है? मुझे यह समाधान मिला: mylayer.drawFeature (mylayer.getFeatureById (id), {fillColor: "# 00ffff", stroColor: "# 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]);

यह मेरे लिए काम नहीं किया, मुझे "अनकैप्ड टाइपर्रर: feature.setStyle एक फंक्शन नहीं है" मिला
मैथ्यू लॉक

1

व्हाइट 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.