我想知道是否有任何办法不建立确定的地图中心。我的意思是,我想移动并缩放到我的地图,当我重新加载页面时,我的地图显示我之前制作的中心和缩放。有可能吗?
答案 0 :(得分:2)
您正在寻找固定链接? OpenLayers 3不提供自动处理固定链接的控件,因为它是特定于应用程序的,如何在链接中编码地图状态。
但是自己实施它并不太难。每次移动地图时,您都必须更新网址中的中心和缩放级别:
map.on('moveend', function() {
var view = map.getView();
var center = view.getCenter();
window.location.hash =
view.getZoom() + ';' + center[0] + ';' + center[1];
});
然后,在创建地图时,您必须解析网址以获取中心和缩放级别:
var zoom = 2, center = [0, 0];
if (window.location.hash !== '') {
var hash = window.location.hash.replace('#', '');
var parts = hash.split(';');
if (parts.length === 3) {
zoom = parseInt(parts[0], 10);
center = [
parseFloat(parts[1]),
parseFloat(parts[2])
];
}
}
var map = new ol.Map({
...
view: new ol.View({
center: center,
zoom: zoom
})
这两个链接也可能有所帮助:
http://oobrien.com/2015/01/openlayers-3-and-datashine/( - >永久链接)
http://spoiledmilk.com/blog/html5-changing-the-browser-url-without-refreshing-page/