在OL3中加载本地缩放tileset

时间:2014-11-02 14:25:31

标签: openlayers-3 zoomify

我从一些数字化的地图图像中制作了一个缩放图块集,现在想用OL3在网站上显示该图。但是,我的脚本当前无法从本地文件uri加载该映射(稍后,在生产中,我将在某些Web服务器上载切片并使用HTTP引用切片)。以下是我到目前为止的情况:

  var url = 'file:///home/user/map_zoomfiy/';
  var imgWidth = 17244;
  var imgHeight = 9684;

  var imgCenter = [imgWidth / 2, - imgHeight / 2];

  var proj = new ol.proj.Projection({
    code: 'ZOOMIFY',
    units: 'pixels',
    extend: [0, 0, imgWidth, imgHeight]
  });

  var source = new ol.source.Zoomify({
    url: url,
    size: [imgWidth, imgHeight],
    crossOrigin: 'anonymous'
  });

  var map = new ol.Map({
    target: 'map',
    layers: [
      new ol.layer.Tile({
        source: source
      })
    ],
    view: new ol.View({
      projection: proj,
      center: imgCenter,
      zoom: 1
    })
  });

</script>

为什么会失败的任何想法? THX。

2 个答案:

答案 0 :(得分:0)

这不是正确的方式,例如https://developer.mozilla.org/en-US/docs/WebGuide/API/File_System/Introduction#file

我不明白为什么你不建立本地服务器而不是用本地网址来争取访问你的文件。

很久以前,我编译了some recipes这样做。

打开命令行,转到代码根目录,并根据您喜欢的编程语言关注食谱。

答案 1 :(得分:0)

如果图块位于子目录中(例如tiles_zoomify),则以下内容应该有效

var url = 'tiles_zoomify/';
var imgWidth = 17244;
var imgHeight = 9684;

var imgCenter = [imgWidth / 2, - imgHeight / 2];

var proj = new ol.proj.Projection({
  code: 'ZOOMIFY',
  units: 'pixels',
  extend: [0, 0, imgWidth, imgHeight]
});

var source = new ol.source.Zoomify({
  url: url,
  size: [imgWidth, imgHeight],
  crossOrigin: 'anonymous'
});

var map = new ol.Map({
  target: 'map',
  layers: [
    new ol.layer.Tile({
      source: source
    })
  ],
  view: new ol.View({
    projection: proj,
    center: imgCenter,
    zoom: 1
  })
});