2016-10-17 2 views
0

시간을내어 읽어 주셔서 감사합니다.OpenLayers3의 라인에 그라디언트를 추가하십시오

나는 다양한 그라디언트로 이상적으로 표현되는 일련의 다르게 스타일 지정된 세그먼트로 LineString을 그리는 임무를 맡았습니다.

그라디언트로 렌더링되도록 설정하면 문제가 나타나지 않습니다. 레이어의 스타일 함수의 경우 새 스타일 배열을 만들어서 원하는 스타일로 반환합니다.

스트로크 스타일을 사용하면 모든 것이 훌륭하게 렌더링됩니다. 채우기를 추가하면 (단색으로 채우기조차도) 채우기가 나타나지 않습니다.

저는 위도와 자유가 너무 많아서 LineString을 사용하는 것이 잘못된 접근이라면 다른 방향으로 가고 싶습니다.

다시 한 번 도움을 주시면 감사하겠습니다.

+0

는 잘 모르겠어요 (당신의지도에 선을 그릴)하지만 난 채우기가 선 스트링와 함께 작동하지 않을 것이라고 생각 효과를 볼 수있는 fiddle입니다 : 이것처럼 . 각 세그먼트를 다른 색으로 표시하려면 색상을 조정할 수있는 스타일 함수로 해석 할 수있는 속성을 추가합니다. 채우기를 원하면 다각형 맵 레이어를 사용해보십시오. – GoinOff

+0

스타일의'geometryFunction'을 사용하여 개별 선분을 다르게 렌더링 할 수 있습니다. 각 세그먼트에 대해 하나의 스타일이 필요합니다. 'geometryFunction'은 각 스타일에 대해 다른 선분을 반환합니다. – ahocevar

답변

0

채우기를 추가하는 대신 줄에 획 스타일 배열을 배치하십시오. 하나는 내부 (채우기)를위한 것이고 다른 하나는 외부 (획)를위한 것입니다. 여기

var styles = [ 
       new ol.style.Style({ 
        stroke: new ol.style.Stroke({ 

         color: "#000000", 
         width: 10 
        }) 

       }), 
       new ol.style.Style({ 
        stroke: new ol.style.Stroke({ 

         color: "#ff0000", 
         width: 6 
        }) 
       }) 
    ]; 

관련 문제