我是新手打开第3层api,我有一个查询:我已经标记了一些位置和自定义信息窗口,点击这些标记即可打开。请找小提琴here
var map = new ol.Map({
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([78, 21]),
zoom: 2
}),
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
})]
});
当地图使用鼠标滚轮进出时,是否可以重新调整框的大小。我计划标记更多的城市,并在点击每个标记时绘制框,默认情况下应打开这些框,因此它将覆盖整个地图。我可以根据缩放级别更改框大小。 还有哪一层设置为没有任何详细信息的地图,如机场,道路等。我希望地图有基本的极简主义层,只有国家边界和城市名称。
谢谢
答案 0 :(得分:0)
您可以收听视图change:resolution
事件,并使用缩放级别使框更大。这是一个例子:
var view = new ol.View({
center: ol.proj.fromLonLat([78, 21])
});
var parentZoom = null;
view.on('change:resolution', function() {
var zoom = view.getZoom();
if (parentZoom !== null) {
$('#zoom').text([
'Parent zoom:',
parentZoom,
', Current zoom:',
zoom
].join(' '));
}
var width = 50 + (zoom * 10);
var height = 30 + (zoom * 10);
$('.mapDivs').width(width + 'px').height(height + 'px');
parentZoom = zoom;
}, this);
view.setZoom(2);
在JSFiddle上查看(使用上面的代码更新了您的示例):http://jsfiddle.net/pe7hyr0x/15/