angular - openLayers:缩放几何

angular - openLayers : zoom on geometry

我正在为我的项目使用 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>

你能帮帮我吗?

非常感谢!

好的,我找到了解决方案,我把它放在这里,也许它能帮到你!

目的是从地图中获取图层,然后解析数据,直到获得几何图形。

这是我做的功能(有点原始,但它工作)

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