2016-11-17 66 views
1

我爲我的項目使用Openlayers指令。 我能夠在地圖上繪製幾何圖形,現在我想放大它。angular - openLayers:幾何縮放

我看到這個example,這正是我想要做的(最合適的部分)。 但我不知道如何與Angular指令做到這一點。

這裏是我的層中我的組件控制器:

  _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> 

你能幫助我嗎?

thx很多!

回答

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()); 
       } 
      }); 
     }); 
    }