如何使用OpenLayers 3创建永久链接?

时间:2015-04-14 12:44:42

标签: openlayers openlayers-3

我想知道是否有任何办法不建立确定的地图中心。我的意思是,我想移动并缩放到我的地图,当我重新加载页面时,我的地图显示我之前制作的中心和缩放。有可能吗?

1 个答案:

答案 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/