2017-03-18 3 views
1
는 ol.style.RegularShape의 Openlayers 문서는 말한다

:Openlayers RegularShape 반경 1과 반경 2를 사용하여 별을 생성하려면 어떻게해야합니까?

radius number | undefined Radius of a regular polygon. 
radius1 number | undefined Inner radius of a star. 
radius2 number | undefined Outer radius of a star. 

내 해석이 정상 다각형 (삼각형, 사각형, 오각형 등)을 위해 내가 radius을 사용하지만 하나 radius1를 사용해서는 안 또는이다 radius2. 그리고이 정도면 충분합니다.

마찬가지로, 나는 스타를 들어, 내가 radius를 사용하지해야한다는 뜻이 해석했고 둘 다 radius1radius2를 사용해야하고 radius1radius2보다 작아야합니다. 그러나 이것은 별의 일부를 볼 수있는 다소 이상한 표정의 상징을 만들어 냈지만 정사각형의 가면으로 자른 것처럼 보였다.

내가 원하는 결과를 얻으려면 (Openlayers 예제 코드를 검토 한 후) radiusradius2을 사용하여 결국 더 작은 숫자 인 radius2을 얻었습니다!

다양한 radius(X) 매개 변수를 사용하는 것만 큼 두 가지 버전의 자바 스크립트가 아래에 나와 있습니다.

설명서에 대한 제 이해가 잘못되었거나 설명서/구현이 잘못되었습니다.

왜 새 코드가 작동하는지 알고 싶습니다. 그렇다면 누구나 다양한 radius(X) 매개 변수가 어떻게 작동하는지 설명하고 세 가지 설명을 더 잘 이해할 수있게 도와 줄 수 있습니까?

이 코드는 오히려 이상한 보이는 기호를 생산하는 사각형 마스크로 스타 단편을 절단 오프 같은 비트 :

good start

:이 코드는 올바른 별을 생산

bad start

new ol.style.Style({ 
    image: new ol.style.RegularShape({ 
     stroke: new ol.style.Stroke({ 
      color: '#333333FF', 
      width: 6.0 
     }), 
     radius1: 24, 
     radius2: 60, 
     points: 5 
    }) 
}) 

new ol.style.Style({ 
    image: new ol.style.RegularShape({ 
     stroke: new ol.style.Stroke({ 
      color: '#333333FF', 
      width: 6.0 
     }), 
     radius: 60, 
     radius2: 24, 
     points: 5 
    }) 
}) 

답변

1

당신 말이 맞습니다. 설명서가 잘못되었습니다. 나는 https://github.com/openlayers/openlayers/pull/6604을 수정했다.

별의 바깥 쪽 반지름은 radius1 또는 radius이어야하고 안쪽 반지름은 radius2이어야합니다. 첫 번째 예제가 작동하지 않는 이유는 심볼 크기가 radius 또는 radius1에서 결정 되었기 때문입니다. 그것이 더 작은 반경이라면, 심볼 크기는 전체 별을 수용하지 못할 것입니다.

+0

감사합니다. 대단히 감사합니다. –