概要

Mirador 3で特定の領域にズームにするには、以下に記載があるような方法で行います。

https://github.com/ProjectMirador/mirador/wiki/M3---Mirador-3-Frequently-Asked-Questions#q-how-do-i-change-the-view-of-an-image-to-zoom-to-a-certain-area

具体的には以下です。

c}c}v}mo;o;a)inxywhnxyrxyz;rBs::ies::::oaotditaodx11tgbbczzmob48hhzootoo:rto23:toxxiooIox01:oTTomm1nT,,8moonCCszo01CZZee/toZ01eoo=nnaoo,9noottbnmo5tmmMeeocme..irrxetrxyr..T.o=axyos=++d,,Zt{ooo{bbroroo.mexxa..TTcwdootiiZZidsoootpoonhammst...cwhuhiep(didatgachhtttei/Vo/in2e),2w;port(windowId,{

内部的にはOpenSeadragonのpanTozoomToが使用されているようでした。

この時の課題として、zoomToは以下の記事にあるように、constraintsを無視して拡大するようでした。

https://github.com/openseadragon/openseadragon/issues/881

これに対して、以下の記事で示したように、viewer.viewport.applyConstraints();の処理を追加することで、constraintsを守った拡大ができるようになりました。

以下、強引ではありますが、npmでインストールしたMiradorに対して、上記の設定を行う方法を紹介します。

Miradorの編集

以下でMiradorをインストールします。

npminstallmirador

node_modules以下にmiradorフォルダが作成されます。

その中にある以下のファイルに対して、viewport.applyConstraints();を追加する例を示します。

{kv}eaylvvti}i}}}:uaahfferrii}trvvtetevi}i}i}i}":s(fhe(iahlhlaffffc_vcv.pvvvvit!erisisrvvvvvoftiaiariiiisutwseseiiiiimuhenepeveeee.rhec..vveveevevepniwvwiviwwwwaniraairiiiwiwwiwiwocseaeRSeeeeed;s.ndfefeepeppepepnt$rsretwrrrrd.cvdfwwowoowowoeipCWfae..CCAilaA(rpererrerernoroo=.trvvoolnosl!evortrttrtrttnonrceCiinnlfselisirC.C..C.C.Dpfltu.oeeffIoesIshetopozaososicsidhrvnwwiimR(CmETwnanopnenedo2girifppggae)haqie=fnfopftftUm=seeioo..gs;agulriTimliRiFpp==.nwgrrdfepneaeCvgogTygogldo_ste)ttelSogSlPoi.(.oC.t.iant_ttr..gioneo(rnexvz(orafptehtha={pzrpusducofwiovnotl(enihit=aoererapie!eoistiiv"tsisev=noe!cs=cnegr=wmetaopi,D.s$.i=Tms=eMevr.=ewrtneip$pveoT=sa!sat&vr!eai(!wdrpriwu(o!(ti(si&ivC=riov=eUoroeenv(=u!cscWeeio=Cnni=rppopwrdiv=nvhEaos!wenoteCdspse;eeidi(qnr(tpwfvns!wvoa,s2rfweueepuvl)hopiif(=eint2.;iewnfwraad;irogei)=refe.cnredieels.str,wg;Cwi(vaeCrenrv(el.;tp.vopgpindoCfeCPcsao.fozino.rev)noidoraCyscarefrfewafnnnonhedeltwitlves{ife&fpvarUns.mpg.iPrWgid&isansptez,o.gprCo,gg.sg,de)orre)oor.&v)iWear;ovtot;pnltz&i;nodptSmi.tFsfdroefrripSegal,i;uovwolenrpwetigemieRdgiretipp,),ere.P)nirRo(r;w.sc!rgnCon)evevpavo{Xgot))virionip..na;Se.envesttft{twvwsaw.aaiiaeipesecrrgotreosIragg,neCwr)dCnee()optsovttf)no.,na..a){frsfsvvlitepiWaas{g.t!rgolle,sFte)ruu)elhv;lee;ttiiPd)rRpsr.uo(.ol{etvnpa)aiosyv;ten.eiiwTcreoeiaswnrln)e(Cev)rvodaCinIs{oefmWnwiaofeggrir.elgCfdd.olM.yniacfpta!i)cn=g;hv=.(adpsverIigedervsweP)per;osor)pt;s..cneonntTeirlSepdrIimnaggYe.st)a)rg{et.value){

上記の設定により、Mirador.actions.updateViewportでズームした際に、constraintsを守った拡大ができるようになりました。

まとめ

本来はMiradorのソースコードを修正してビルドするほうがよいと思いますが、Miradorのビルドがうまくいかず、代替策として、ビルド済みのファイルを修正しました。

ソースコードから修正する方法も引き続き調査を行いますが、他の方の参考になりましたら幸いです。