Commit Graph

12208 Commits

Author SHA1 Message Date
Bruno Binet
7d0b4c757e Activate kinetic effect by default 2013-01-29 12:39:52 +01:00
Bruno Binet
8a9738d755 Add support for kinetic effect while dragging.
Only dragpan interaction is supported for now.

The kinetic effect use the maths below (thx @twpayne):

Rate of decay (number, must be negative) = α
Minimum velocity (pixels/millisecond) = v_min
Initial velocity (pixels/millisecond) = v₀

Velocity at time t (pixels/millisecond) =
    α⋅t
v₀⋅ℯ

Distance travelled at time t (pixels) =
   ⎛ α⋅t    ⎞
v₀⋅⎝ℯ    - 1⎠
─────────────
      α

Duration of animation (milliseconds) =
   ⎛v_min⎞
log⎜─────⎟
   ⎝  v₀ ⎠
──────────
    α

Total distance travelled (pixels) =
-v₀ + v_min
───────────
     α

Easing function =
   ⎛ α⋅duration⋅t    ⎞
v₀⋅⎝ℯ             - 1⎠
──────────────────────
     -v₀ + v_min
2013-01-29 12:39:52 +01:00
Frédéric Junod
47fbdb53e2 Merge pull request #167 from fredj/mapbrowserevent-listen
Listen to all ol.MapBrowserEvent events
2013-01-29 03:15:19 -08:00
Frederic Junod
a980de7830 Listen to all ol.MapBrowserEvent events 2013-01-29 11:29:27 +01:00
Tom Payne
bef1b9aea5 Merge pull request #163 from twpayne/attribution-control-clean-ups
Attribution control clean ups
2013-01-29 02:22:30 -08:00
Tom Payne
2e401b43f4 Make attribution control unselectable 2013-01-29 11:21:57 +01:00
Tom Payne
c2c87a80a1 Remove duplicate CSS rule 2013-01-29 11:21:57 +01:00
Tom Payne
d22c441795 Merge pull request #162 from twpayne/canvas-visibility-and-opacity
Canvas visibility and opacity
2013-01-29 02:20:39 -08:00
Éric Lemoine
0c25aa95ea Merge pull request #166 from elemoine/extracomma
Change a comma to a semi-colon (thanks @bbinet)
2013-01-29 01:34:23 -08:00
Éric Lemoine
713828d953 Change a comma to a semi-colon (thanks @bbinet) 2013-01-29 10:33:35 +01:00
Éric Lemoine
8713e84821 Change class names in DOM renderer 2013-01-29 10:24:25 +01:00
Tom Payne
3bd1b92b05 Promote renderFrame from ol.renderer.*.LayerRender to ol.renderer.LayerRenderer 2013-01-28 19:56:57 +01:00
Tom Payne
5558d6108c Promote handleLayerRendererChange from ol.renderer.webgl.Map to ol.renderer.Map 2013-01-28 19:56:56 +01:00
Tom Payne
49734de240 Promote dispatchChangeEvent from ol.renderer.webgl.Layer to ol.renderer.Layer 2013-01-28 19:56:56 +01:00
Tom Payne
4701d117f7 Always dispatch change events on load/opacity/visible changes 2013-01-28 19:56:56 +01:00
Bart van den Eijnden
c51b2b3fef add info about install Jasmine and the precommit hook from build.py 2013-01-28 15:18:15 +01:00
Frédéric Junod
eb103d3bd1 Merge pull request #160 from fredj/dblclick-unlisten
Remove event listener cleanups
2013-01-28 04:19:24 -08:00
Éric Lemoine
faee272fac Merge pull request #161 from elemoine/nullimage
Do not draw image if image is null
2013-01-28 03:51:17 -08:00
Éric Lemoine
1d2551dbcb Do not draw image if image is null 2013-01-28 12:41:46 +01:00
Frederic Junod
f8646394ae Remove event listener with goog.events.unlistenByKey 2013-01-28 10:37:32 +01:00
Frederic Junod
9e030854b2 Don't remove event listener for this.handleUp_ twice.
The listener key is in this.dragListenerKeys_
2013-01-28 10:31:24 +01:00
Frederic Junod
01098c4d8c Remove event listener with goog.events.unlistenByKey 2013-01-28 10:26:09 +01:00
Frederic Junod
f208e99c64 Add missing goog.events.EventType.DBLCLICK argument to unlisten 2013-01-28 09:54:41 +01:00
Frederic Junod
43fe004917 Add a comment about msTouchAction css on viewport 2013-01-25 17:37:04 +01:00
Frédéric Junod
36500682c3 Merge pull request #157 from fredj/ms-touch
Direct all pointer events to js code (IE pointer events)
see: http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx
2013-01-25 08:16:05 -08:00
ahocevar
65b3bb70a1 Some optimizations
* Tiles are now cut out of the sketch renderer in a separate
  pass. This ensures that point features at tile borders appear
  at both sides of the border. However, if such features get
  added in a later tileRange rendering pass, tiles from a
  previous rendering pass will still not have that feature.
* The tile canvas is only created once, and cloneNode(false) is
  used to get a canvas for a new tile.
2013-01-25 16:46:12 +01:00
Frederic Junod
9c794d8b00 Direct all pointer events to js code (IE pointer events).
see: http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx
2013-01-25 16:38:45 +01:00
Frederic Junod
bf63ddfebe Test if browser supports Windows Pointer events 2013-01-25 16:38:45 +01:00
Marc Jansen
a6f987049e Merge pull request #154 from marcjansen/todo
Add fixme/todo target to build.py.
2013-01-24 23:47:52 -08:00
Tim Schaub
a7737150fe Merge branch 'master' of github.com:openlayers/ol3 into vector 2013-01-24 22:21:25 -07:00
Tim Schaub
4e3f984796 Properly rendering features to canvas tiles
It looks like this approach will work well for panning (as anticipated).  For animated zooming, it is not going to work as is.  It looks like the canvas tile generation is too much for this type of animation loop.  Though there are clearly still areas for optimization:

 * Don't create new tiles while animating between zoom levels.  Using existing tiles only while animating should bring a significant performance gain.
 * Simple spatial index for tiles - each tile coord in the matrix could have a feature lookup object (keyed by id).  This needs to account for rendered dimension (as witnessed by the point being cut by a tile).  Given that the current example uses only three features, adding the spatial index should only be a minor improvement.
 * Reuse a fixed set of canvas tiles that are generated at construction (and increased/decreased with view size changes).
 * If a fixed set of tiles is not used, at least new ones could be cloned from existing ones (minor).
 * Do some profiling to look for more ideas.

In addition, world-wrapping needs addressed.  I don't think this renderer is the right (or at least the only) place to address this.  And the cache of tiles needs to be managed for real.  But hey, at least we've got a working tiled vector renderer now.
2013-01-24 21:57:12 -07:00
Tim Schaub
f2b325b430 Adding convenient tile labels for debugging
This will be removed when behavior is right.
2013-01-24 17:16:54 -07:00
Tim Schaub
033daa425b Reverting b0a7badc8f
I think it's complicating things at this point to deal with this.  Unfortunately, it's not proper dateline wrapping as is (only arbitrary tile range extent wrapping).
2013-01-24 17:15:32 -07:00
Tim Schaub
8d5a45d827 Set up example for debugging 2013-01-24 16:51:10 -07:00
Éric Lemoine
fc9bfe8460 Merge pull request #159 from elemoine/renderpath
Simplify map renderer
2013-01-24 14:23:22 -08:00
Éric Lemoine
98b264e8ce Add comment 2013-01-24 22:31:57 +01:00
Éric Lemoine
80b38e608b No more need for listener keys array 2013-01-24 22:31:53 +01:00
Éric Lemoine
4a64837ba1 Make map handle background color changes 2013-01-24 22:31:08 +01:00
Éric Lemoine
2a28b7c699 Add comment 2013-01-24 22:31:08 +01:00
Éric Lemoine
15898b559b Make map handle size changes 2013-01-24 22:31:08 +01:00
Éric Lemoine
71a462cd54 Make map handle view changes
With the frameState stuff the map renderer need not listen to view changes. The map renderer receives orders from the map. These orders are renderFrame_ calls with frameState objects representing the current state.
2013-01-24 22:31:06 +01:00
Tom Payne
0bb31150b0 Merge pull request #148 from twpayne/anchored-elements
Replace ol.overlay.Overlay with ol.AnchoredElement
2013-01-24 09:36:40 -08:00
ahocevar
b0a7badc8f Started on proper date line wrapping
What we want in the end is vector tiles repeated just as raster
tiles. This change only avoids repeated tiles with the same
content being rendered and stored in the cache.
2013-01-24 17:29:21 +01:00
Tom Payne
309ddad4fe Merge pull request #152 from twpayne/texture-cache-expiry
Texture cache expiry
2013-01-24 07:36:06 -08:00
Tom Payne
8cac270234 Use + rather than Number for string to number conversion 2013-01-24 16:31:56 +01:00
Tom Payne
ace0728e8a Merge pull request #151 from twpayne/tile-cache-expiry
Tile cache expiry
2013-01-24 07:24:33 -08:00
ahocevar
fe605ceebb Better, but still not all the way there 2013-01-24 16:21:30 +01:00
Éric Lemoine
197ef89964 Merge pull request #156 from elemoine/examplefix
Remove ref to userProjection
2013-01-24 01:35:14 -08:00
Éric Lemoine
dc9fb06185 Remove ref to userProjection
The wms-custom-proj example sets a userProjection in the map while userProjection is gone for now. It was removed in 927cffb2.
2013-01-24 10:32:32 +01:00
Éric Lemoine
0945f19620 Merge pull request #155 from elemoine/typo
Fix typo in a typedef
2013-01-24 01:29:43 -08:00