[OpenLayers-Dev] Multitouch, tile layer contributions [repost]
woodbri at swoodbridge.com
Sat May 8 18:35:31 EDT 2010
I can not speak for the dev team, but as a user that is also trying to
better support multitouch devices, I would love to see OpenLayers have
better awareness and support for multitouch devices.
One option to discuss with the dev team might be to load your changes
into a sandbox to make it easier for them and other to review and try
out your changes.
Nathan Vander Wilt wrote:
> 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?
> http://calftrail.com <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
>> 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
>> === 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
>> 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?
>> http://calftrail.com <http://calftrail.com/>
>> Dev mailing list
>> Dev at openlayers.org <mailto:Dev at openlayers.org>
> Dev mailing list
> Dev at openlayers.org
More information about the Dev