오픈 레이어에서 기능의 색상을 변경하는 방법은 무엇입니까?


11

geojson 파일을 오픈 레이어에로드하여 일부 다각형을 표시합니다. 이 파일에서이 다각형의 모든 이름 목록을 만듭니다.

이제 목록에서 이름을 클릭했을 때 다각형의 색상을 변경하고 싶습니다.

내가 시도한 것은 스타일 ( 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
  • strokeColor
  • 치기 불투명도
  • 스트로크 폭
  • strokeLinecap
  • 뇌졸중
  • ...

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]);

이것은 나를 위해 작동하지 않았다 "나는 잡히지 않은 TypeError : feature.setStyle이 함수가 아닙니다"
매튜 잠금

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]내 기능의 요소 중 하나입니다. 모든 기능을 변경하려면 루프를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.