2016-11-17 6 views
1

내 프로젝트에 Openlayers 지시문을 사용하고 있습니다. 지도에서 지오메트리를 그릴 수 있었으므로 이제 확대하고 싶습니다.angular - openLayers : 지오메트리 확대

나는이 example을 보았고 정확하게하고 싶습니다 (가장 잘 맞는 부분). 하지만 Angular Directive를 사용하는 방법을 모르겠습니다.

  _this.perimeterLayer = { 
      source: { 
       type: 'GeoJSON', 
       geojson: { 
        object: { 
         type: 'Feature', 
         geometry: { 
          type: 'Polygon', 
          coordinates: transformedCoords 
         } 
        } 
       } 

      }, 
      style: new ol.style.Style({ 
       stroke: new ol.style.Stroke({ 
        color: 'blue', 
        width: 3 
       }), 
       fill: new ol.style.Fill({ 
        color: 'rgba(0, 0, 255, 0.1)' 
       }) 
      }) 
     }; 

를 어떻게 난 내보기에서 사용 :

여기 내 계층 내 구성 요소 컨트롤러의

<ol-layer ol-layer-properties="$ctrl.perimeterLayer"></ol-layer> 

당신이 날 도와 드릴까요?

많이!

답변

1

좋아, 해결책을 찾았으니, 여기 놓으세요, 아마도 도움이 될 수 있습니다!

목표는지도에서 레이어를 가져온 다음 지오메트리를 얻을 수있을 때까지 데이터를 구문 분석하는 것입니다.

여기

 function perimeterFocus() { 
     var geometry; 
     olData.getMap().then(function (map) { 
      map.getLayers().forEach(function (lyr) { 
       if (lyr.get('name') == 'perimterLayer') { 
        var features = lyr.getSource().getFeatures(); 
        geometry = features[0].getGeometry(); 
        map.getView().fit(geometry, map.getSize()); 
       } 
      }); 
     }); 
    } 
내가 한 함수의 (조금 원시는하지만 일하고있어)
관련 문제