SceneNode (слои), Deep Zoom Composer и Seadragon Ajax

Я использую DeepZoom Composer, чтобы накладывать разные изображения друг на друга, причем каждый слой наверху меньше. (Аналогично http://msdn.microsoft.com/en-us/expression/cc745977.aspx)

Есть ли простой способ использовать Seadragon Ajax 0.8.9 для увеличения каждого слоистого изображения наверху (с контейнером, показывающим точное соотношение 1: 1 для верхнего многослойного изображения) вместо того, чтобы вручную создавать контрольный оверлей и назначать поведение щелчка для увеличения / панорамирование к слоистой области на общей композиции?

Обновление: я также пытался использовать значения SparseImageSceneGraph.xml, чтобы установить для zoomTo следующие значения:

<x>0.0663816754801515</x>
<y>0.0850837639496624</y>
<Width>0.0322681051707401</Width>
<Height>0.0322681051707415</Height>
<ZOrder>2</ZOrder>

с использованием

viewer.viewport.zoomTo(30.990353933356293, 
new Seadragon.Point(0.0663816754801515, 0.0850837639496624));

но это немного отличается от изображения 2-го уровня.

Также пробовал:

var x = 0.066381675480155;
var y = 0.085083763949665;
var w = 0.0322681051707403;
var h = 0.0322681051707407;
var rect = new Seadragon.Rect(x,y,w,h); 
viewer.viewport.fitBounds(rect);

Но это тоже не для изображения второго слоя. (хотя второе изображение частично видно)

2-е обновление

Сейчас я исследую использование OpenSeaDragon, чтобы проверить, чего я хотел достичь, и вот что у меня есть:

viewer = new OpenSeadragon.Viewer("container");

$.extend(true, OpenSeadragon.options, {
    autoHideControls: false,
    defaultZoomLevel : 1,
    visibilityRatio : 1.1,
    constrainDuringPan : true,
    minZoomImageRatio : 1,
    maxZoomPixelRatio : 30,
    animationTime: 1.5,
    tileSources: [{
        id: 'example-overlay',
         x: 0,
         y: 0,
         width: 0.015, 
         height: 0.015,
         className: 'highlight'
    }]  
});         

viewer.showNavigator = false;
viewer.open("test4/GeneratedImages/dzc_output.xml");
viewer.clearControls(); 

Я не могу отобразить оверлей, используя вышеуказанное, что я делаю не так? Есть ли хороший пример инициализации OpenSeadragon с помощью xml (dzi) со всеми наложениями и связанными событиями щелчка для наложений? Мы будем очень благодарны за любой образец кода!


person bcm    schedule 13.05.2013    source источник


Ответы (1)


Определенно кажется, что это должно быть возможно, и похоже, что вы на правильном пути. Может быть, есть какая-то закономерность в том, насколько не точны цифры?

Кстати, Seadragon Ajax претерпел значительные изменения с момента выхода 0.8.9, и теперь это OpenSeadragon:

http://openseadragon.github.io/

Возможно, то, что вы пытаетесь сделать, уже работает с этим? Если нет, вы можете записать туда ошибку ... она активно разрабатывается.

person iangilman    schedule 14.05.2013
comment
В новом OpenSeadragon есть ли способ удалить поле позиции в правом верхнем углу, а также наложенные изображения (вместо установки фонового изображения с помощью класса css)? - person bcm; 16.05.2013
comment
Конечно ... включите showNavigator: false в OpenSeadragon.Viewer параметры, чтобы скрыть поле навигатора. Вы можете добавлять простые изображения и другие объекты HTML с помощью OpenSeadragon.Drawer.addOverlay(). - person iangilman; 16.05.2013