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