Sorry, my thread appears to have been quickly hijacked.
Is there any interest in getting the multitouch-oriented improvements described 
and demonstrated below into trunk?

thanks,
-natevw
http://calftrail.com




On May 4, 2010, at 3:00 PM, Nathan Vander Wilt wrote:
> Hello all,
> 
> I have created a number of patches to OpenLayers around the overall goal of 
> having it work well in iPhone/iPad's Mobile Safari (and preliminary testing 
> in Android). While there are still a few remaining issues on my own TODO 
> list, I'd appreciate some code review/advice for potential integration of 
> these contributions with trunk at some point.
> 
> 
> Here's what I've done:
> 
> 
> === SCROLL WHEEL TWEAKS ===
> 
> Some modifications to OpenLayers.Handler.MouseWheel.prototype.wheelZoom to 
> only respond to vertical zoom events. (Not directly related to multitouch, 
> but was bothering me while I tested on the desktop.)
> 
> Reverted OpenLayers.Control.Navigation.prototype.wheelChange back to 2.8 so 
> it once again allows fractional zoom (and modified .wheelUp/.wheelDown to 
> pass original fractional delta).
> 
> 
> === MULTITOUCH CONTROLS ===
> 
> Made an OpenLayers.Handler.Multitouch that mimics Handler.Drag to work for 
> OpenLayers.Control.MultitouchNavigation. This latter is a simple subclass of 
> OpenLayers.Control.DragPan to instantiate the correct handler and to handle 
> the zoom events (simply using OpenLayers.Control.Navigation.wheelChange code 
> in its OpenLayers 2.8 form.)
> 
> Some previous work on this had been done 
> (http://trac.openlayers.org/ticket/1994), but I wanted to do it in less code 
> in a way that was more compatible with the existing mouse controls/handlers.
> 
> 
> === New Tile layer ===
> 
> This is the big one, but also most likely in need of discussion. With 
> multitouch, the layer needs to follow the fingers in real time, which means 
> the map should support fractional zooming. So I have created an 
> OpenLayers.Layer.Tile subclass of OpenLayers.Layer.HTTPRequest that basically 
> replaces OpenLayers.Layer.Grid, but focuses only on powers-of-two style 
> tilesets.
> 
> I initially planned to just modify OpenLayers.Layer.Grid to support the 
> fractional zooming, but their were a number of issues with its architecture 
> (esp. with regard to tile callbacks) that would have basically meant adding a 
> third "mode" to that existing class. 
> There was some work done to that effect a while back 
> (http://trac.openlayers.org/ticket/442) but it was only for animation 
> tweening.
> 
> This new layer is designed to rest at any zoom level whatsoever; it will 
> "overzoom" the best available tiles when necessary. It preserves loaded tiles 
> until its replacements from a new zoom level load, although it does not use 
> Tile.Image backbuffer and does some other semi-kludgy things to deal with the 
> OpenLayers.Tile architecture. The callback is tile (z, x, y)-based rather 
> than bounds, so that all a user/subclass typically needs to do is form an 
> appropriate URL string instead of any geometry calculations.
> 
> 
> You can see a demo of all of this working together at 
> http://calftrail.com/Share/multitouch/ (for best results use Safari with a 
> smooth-scrolling mouse/trackpad or on the iPhone/iPad). What I'm wondering is 
> how well this all fits in with OpenLayer's goals and how I can go about 
> getting this contributed and integrated. Would it be best to split each area 
> into its own ticket and attach patches for individual review? Are there 
> upcoming changes on the roadmap that this code should target?
> 
> thanks,
> -natevw
> http://calftrail.com
> _______________________________________________
> Dev mailing list
> Dev@openlayers.org
> http://openlayers.org/mailman/listinfo/dev

_______________________________________________
Dev mailing list
Dev@openlayers.org
http://openlayers.org/mailman/listinfo/dev

Reply via email to