Openlayers 3 视图 setProperties 不填充地图
Openlayers 3 view setProperties does not populate the map
我正在尝试动态设置我的地图属性,但它不起作用。
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
我正在尝试像这样设置最小最大缩放级别:
map.getView().setProperties({minZoom: 5, maxZoom: 9});
此代码未设置视图。
我正在获取地图视图属性,map.getView().getProperties();
但它仅 returns:
我正在设置extent, zoom, minZoom, maxZoom参数但是没有出现
(其实创建地图后不能设置project
、extent
、min
、max zoom
和resolutions
)
这是一个错误吗?
地图的默认投影是 EPSG:3857
,因此请将 ol.view
中的 t运行sform 从 EPSG:4326
更改为 EPSG:3857
。这是一个常见问题,运行 我自己也遇到了。如果投影不匹配,则不会显示 up/doesn 无效。
已更新fiddle:
我从 this answer
中获取了解决方案
您可以通过以下方式在地图中设置新视图来做您想做的事情:
map.setView(new ol.View({
center: map.getView().getCenter(),
zoom: map.getView().getZoom(),
maxZoom: 9,
minZoom: 5
}));
如果您想保留所有视图属性而不是指定某些特定内容,您可以获取它们并将它们传递给新视图:
var properties = map.getView().getProperties();
properties["minZoom"] = 5;
properties["maxZoom"] = 9;
map.setView(new ol.View(properties));
我更新了你的jsfiddle example
您可以使用 setProperties
更改的唯一视图属性是 getProperties
列出的视图属性。你当然可以添加一个新的,但是新属性 minZoom
和 maxZoom
不会像你期望的那样工作,因为地图仍然会处理旧的
我正在尝试动态设置我的地图属性,但它不起作用。
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
我正在尝试像这样设置最小最大缩放级别:
map.getView().setProperties({minZoom: 5, maxZoom: 9});
此代码未设置视图。
我正在获取地图视图属性,map.getView().getProperties();
但它仅 returns:
我正在设置extent, zoom, minZoom, maxZoom参数但是没有出现
(其实创建地图后不能设置project
、extent
、min
、max zoom
和resolutions
)
这是一个错误吗?
地图的默认投影是 EPSG:3857
,因此请将 ol.view
中的 t运行sform 从 EPSG:4326
更改为 EPSG:3857
。这是一个常见问题,运行 我自己也遇到了。如果投影不匹配,则不会显示 up/doesn 无效。
已更新fiddle:
我从 this answer
中获取了解决方案您可以通过以下方式在地图中设置新视图来做您想做的事情:
map.setView(new ol.View({
center: map.getView().getCenter(),
zoom: map.getView().getZoom(),
maxZoom: 9,
minZoom: 5
}));
如果您想保留所有视图属性而不是指定某些特定内容,您可以获取它们并将它们传递给新视图:
var properties = map.getView().getProperties();
properties["minZoom"] = 5;
properties["maxZoom"] = 9;
map.setView(new ol.View(properties));
我更新了你的jsfiddle example
您可以使用 setProperties
更改的唯一视图属性是 getProperties
列出的视图属性。你当然可以添加一个新的,但是新属性 minZoom
和 maxZoom
不会像你期望的那样工作,因为地图仍然会处理旧的