Загрузить локальный набор фрагментов масштабирования в OL3

Я создал набор фрагментов с масштабированием из некоторого оцифрованного изображения карты и теперь хотел бы использовать OL3 для отображения этой карты на веб-сайте. Однако мой сценарий в настоящее время не загружает эту карту из локального файла uri (позже, в процессе производства, я загружу плитки на какой-нибудь веб-сервер и буду ссылаться на плитки с помощью 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>

Any ideas why this fails? Thx.


person behas    schedule 02.11.2014    source источник


Ответы (2)


Это неправильный путь, например, https://developer.mozilla.org/en-US/docs/WebGuide/API/File_System/Introduction#file

Я не понимаю, почему вы не создаете локальный сервер вместо того, чтобы бороться за доступ к вашему файлу с локальным URL-адресом.

Несколько раз назад я собрал некоторые рецепты сделать это.

Откройте командную строку, перейдите в корневой каталог кода и следуйте рецептам в зависимости от вашего любимого языка программирования.

person Thomas Gratier    schedule 04.11.2014

Если плитки находятся в подкаталоге (например, 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
  })
});
person behas    schedule 21.11.2014