私のOpenLayer3マップに問題があります。マップにマーカーを追加すると、地図のサイズを変更し、ズームを変更してすべてのマーカーが画面に表示されるようにします。OpenLayer3のマーカーにズーム(中央)マップ
/** CREATE MARKERS **/
for (var i=0;i<1;i++){
var iconFeature = new ol.Feature({
geometry: new
ol.geom.Point(ol.proj.transform([Math.random()*360-180, Math.random()*180-90], 'EPSG:4326', 'EPSG:3857'))
});
vectorSource.addFeature(iconFeature);
var newBound = ol.Bounds();
newBound.extend([Math.random()*360-180, Math.random()*180-90]);
map.zoomToExtent(newBound);
}
/** MARKER STYLE **/
var iconStyle = [
new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 1,
scale: 0.07,
src: 'marker.png'
}))
})
];
/** ADD LAYER VECTOR **/
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
style: iconStyle
});
/** INIT MAP **/
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
}),
vectorLayer
],
overlays: [overlay],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
がマーカーにマップをズームする方法はあります:
私のコードは次のようになりますか?
vector.on('render',function(e){
var myextent = vector.getSource().getExtent();
})
をそしてあなたが使用してこの範囲にズーム可能性があります:あなたが使用しようとしているのであれば
map.getView().fit(myextent , map.getSize());
をあなたのベクタフィーチャ一度
[OK]を、私は時々、いくつかのポイントをカットズームインので –
、あなたの答えをチェックし@kagelosしてください。このソリューションをテストう。 –
手動でズームインした後、または最初にマップにすべてのポイントが含まれていないことを意味しますか? – kagelos