This sounds sane at first glance. If you can send a pull request with this patch, it will be easier to verify if tests still pass and examples still work.
Thanks, Andreas. On Wed, Jun 27, 2012 at 4:15 PM, David Régade <[email protected]> wrote: > Ok, it works now. > > To do that I configured my layer's serverResolutions with the same array I > set up for resolutions. > Only with this trick tiles are not correctly displayed because Zoomify > functions getURL and getImageSize use: > > var res = this.map.getResolution(); > ... > var z = this.map.getZoom(); > > instead of: > > var res = this.getServerResolution(); > ... > var z = this.getZoomForResolution( res ); > > > With this patch and layer correct configuration, fractionalZoom works for me > with Zoomify layer. > > Do you think this patch is correct or should I take care of some specials > cases ? > > Regards > David > > > On 27/06/2012 15:00, Andreas Hocevar wrote: >> >> To achieve this, it should be enough to configure your layer's >> serverResolutions with the same array that you have set for >> resolutions. >> >> Andreas. >> >> On Wed, Jun 27, 2012 at 2:46 PM, David Régade<[email protected]> >> wrote: >>> >>> I tried this solution too and it didn't work. I had a look to this >>> example: >>> >>> http://openlayers.org/dev/examples/fractional-zoom.html >>> >>> In this example tile size is allways 256x256 whatever the zoom level. But >>> with zoomify it can't be allways 256x256 because tiles have to be >>> streched >>> or shrinked according to zoom level. zoomify relies on direct tile image >>> url >>> , not a mapserver like the example above. These direct images urls have >>> fixed dimensions and represent allways the same "world region". >>> That's why I can't figure out fractionalZoom can work with Zoomify layer >>> if >>> the displayed tile have allways the same size. >>> >>> A solution could be to setup the integer zoom for the layer and scale the >>> layer (like transformDiv() does) to obtain the good result. >>> >>> Regards >>> David >>> >>> >>> On 27/06/2012 12:12, Andreas Hocevar wrote: >>>> >>>> >>>> I see. So maybe you need to leave the original z assignement as-is >>>> (without Math.round or Math.floor), and only change the lines that say >>>> >>>> this.tierSizeInTiles[z] >>>> >>>> to something like >>>> >>>> this.tierSizeInTiles[z|0] >>>> >>>> (z|0 being a more efficient way of saying Math.floor(z)). >>>> >>>> Andreas. >>>> >>>> On Wed, Jun 27, 2012 at 12:04 PM, David Régade<[email protected]> >>>> wrote: >>>>> >>>>> >>>>> I tried Math.floor and the problem is the same. I'm not sure the >>>>> problem >>>>> comes from Math.round/floor because with my example, for an integer >>>>> zoom >>>>> value (3 for example), top left displayed tile is 256px width (thanks >>>>> firebug). For a 3.4 zoom value should the top left tile image width be >>>>> greater than 256px ? >>>>> >>>>> So if the displayed tile images are 256px for 3.4 zoom level, you need >>>>> more >>>>> tile to cover the layer extent in resolution associated to this zoom >>>>> level. >>>>> That's why on my axample, when you click on the button the displayed >>>>> tile >>>>> images are not centered as is it should be and another image tile (that >>>>> doesn't exist) is required and tried to be drawn. Am I wrong ? >>>>> >>>>> Here is a screenshot of what I observed: >>>>> http://david.regade.free.fr/openlayers/z3.4.jpg >>>>> >>>>> Regards >>>>> David >>>>> >>>>> >>>>> On 27/06/2012 11:41, Andreas Hocevar wrote: >>>>>> >>>>>> >>>>>> >>>>>> Try Math.floor instead of Math.round - currently the client zoom >>>>>> implementation only supports oversampling, so you need the next >>>>>> smallest zoom level. >>>>>> >>>>>> Andreas. >>>>>> >>>>>> On Wed, Jun 27, 2012 at 10:51 AM, David Régade<[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> It can't be so easy. I fixed line 225 with: >>>>>>> var z = Math.round(this.map.getZoom()); >>>>>>> >>>>>>> And another bug appeared line 201, same fix: >>>>>>> var z = Math.round(this.map.getZoom()); >>>>>>> >>>>>>> However on this example, http://david.regade.free.fr/openlayers/, >>>>>>> setting >>>>>>> zoom to 3.4 doesn't generate javascript errors anymore but the result >>>>>>> isn't >>>>>>> correct. A tile is tried to be drawn and it shouldn't. >>>>>>> >>>>>>> I tried to trace where and why this tile is drawn but I'm to new to >>>>>>> openlayers to find where the problem comes from. >>>>>>> >>>>>>> Regards >>>>>>> David >>>>>>> >>>>>>> On 27/06/2012 08:05, Andreas Hocevar wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> I just see that there is a bug in Zoomify.js, line 225: >>>>>>>> >>>>>>>> var z = this.map.getZoom(); >>>>>>>> >>>>>>>> We need the integer of getZoom() here instead. >>>>>>>> >>>>>>>> Maybe you want to send a pull request with a fix? >>>>>>>> >>>>>>>> Andreas. >>>>>>>> >>>>>>>> On Tue, Jun 26, 2012 at 11:33 PM, David Régade<[email protected]> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> I get the last OpenLayers master and this feature doesn't work with >>>>>>>>> the >>>>>>>>> following example: >>>>>>>>> >>>>>>>>> http://david.regade.free.fr/openlayers/ >>>>>>>>> >>>>>>>>> Is there something I'm doing wrong ? >>>>>>>>> >>>>>>>>> When setting up a fractional zoom (by clicking on the button for >>>>>>>>> example) >>>>>>>>> Firebug catches an error. >>>>>>>>> Layer is resized but the tiles are not set correctly. >>>>>>>>> >>>>>>>>> David >>>>>>>>> >>>>>>>>> >>>>>>>>> On 26/06/2012 16:32, Andreas Hocevar wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> This is supported in OpenLayers master and the upcoming 2.12 >>>>>>>>>> release. >>>>>>>>>> >>>>>>>>>> Andreas. >>>>>>>>>> >>>>>>>>>> On Tue, Jun 26, 2012 at 3:12 PM, David >>>>>>>>>> Régade<[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> We use openlayers to display large panoramas. We use ZoomifyImage >>>>>>>>>>> to >>>>>>>>>>> split >>>>>>>>>>> original image in tiles and Zoomify layer to display these tiles. >>>>>>>>>>> I would like to use fractionalZoom with Zoomify layer but this >>>>>>>>>>> layer >>>>>>>>>>> doesn't >>>>>>>>>>> support this feature. The main goal is to able to resize >>>>>>>>>>> displayed >>>>>>>>>>> tiles >>>>>>>>>>> for >>>>>>>>>>> zoom level 3 from 2.5 to 3.4. >>>>>>>>>>> >>>>>>>>>>> Does anyone knows how to do that ? >>>>>>>>>>> >>>>>>>>>>> Thanks in advance >>>>>>>>>>> -- >>>>>>>>>>> David REGADE >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Users mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Users mailing list >>>>>>>>> [email protected] >>>>>>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.osgeo.org/mailman/listinfo/openlayers-users >> >> >> >> > _______________________________________________ > Users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/openlayers-users -- Andreas Hocevar OpenGeo - http://opengeo.org/ Expert service straight from the developers. _______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
