OL Mapview:提供的边界不被使用........为什么?
OL Mapview: provided boundaries are not used........why?
当我为 mapview 提供 leftbottom 和 righttop 坐标时,这些坐标并没有被准确使用。由此产生的差异非常大。我错过了什么?!
Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));
var map = new ol.Map({
target: 'map',
view: new ol.View({
projection: "EPSG:3857"
})
});
map.getView().fit(Bounds,map.getSize());
地图视图获得新的 ('larger') 边界,但不是上述边界。 'new' 边界是 [-6.837646484374999,47.32226629045806,17.837646484375,56.461134011735425]
如何让地图贴在提供的地图上?
编辑:我已经根据 Mike 的评论调整了代码(thx!!)。
** 什么是实现我想要的最好方法......即显示具有上述左下和右上 (LON/LAT) 坐标的边界框内的地图部分? **
正在使用边界,但除非您指定 constrainResolution: false
,否则视图将捕捉到最接近的整数缩放级别。此代码演示了通过允许分数缩放级别来获得精确匹配。请注意,如果地图 width/height 比率与范围不匹配,则会出现一些过度覆盖
Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature(ol.geom.Polygon.fromExtent(Bounds))]
})
})
]
});
map.getView().fit(Bounds, {size: map.getSize(), constrainResolution: false});
当我为 mapview 提供 leftbottom 和 righttop 坐标时,这些坐标并没有被准确使用。由此产生的差异非常大。我错过了什么?!
Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));
var map = new ol.Map({
target: 'map',
view: new ol.View({
projection: "EPSG:3857"
})
});
map.getView().fit(Bounds,map.getSize());
地图视图获得新的 ('larger') 边界,但不是上述边界。 'new' 边界是 [-6.837646484374999,47.32226629045806,17.837646484375,56.461134011735425]
如何让地图贴在提供的地图上?
编辑:我已经根据 Mike 的评论调整了代码(thx!!)。 ** 什么是实现我想要的最好方法......即显示具有上述左下和右上 (LON/LAT) 坐标的边界框内的地图部分? **
正在使用边界,但除非您指定 constrainResolution: false
,否则视图将捕捉到最接近的整数缩放级别。此代码演示了通过允许分数缩放级别来获得精确匹配。请注意,如果地图 width/height 比率与范围不匹配,则会出现一些过度覆盖
Bounds = [-0.6688232421875, 49.78322566351028, 11.6688232421875, 54.35032343193191];
Bounds = ol.proj.transformExtent(Bounds, ol.proj.get('EPSG:4326'), ol.proj.get('EPSG:3857'));
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature(ol.geom.Polygon.fromExtent(Bounds))]
})
})
]
});
map.getView().fit(Bounds, {size: map.getSize(), constrainResolution: false});