Commit Graph

3624 Commits

Author SHA1 Message Date
Sergey Kruk
c5ebd534b2 Factory L.latLng to accept altitude as third parameter or an object's 'alt' property 2014-12-01 16:02:43 +03:00
Rick Mohr
08d828f519 Improve inertial scrolling
[This post](http://stackoverflow.com/a/3628949/362702) claims that in Apple's kinetic scrolling, "The velocity of the touch is measured at the exact moment that the finger is lifted."

I tried both this "final velocity" approach and the "max velocity" approach proposed in #2987. Both allow a stronger "fling" than the current "average velocity" approach, but "max velocity" can feel wrong if you slow down at the end of your swipe.

But because the "final velocity" approach uses just one data point it can be unstable, occasionally giving a too-large velocity from a small time delta.

Best is to stabilize that by averaging a few data points, so we're back to "average velocity" but using a shorter time period. Averaging over 50 ms instead of 100 ms gives good results, usually 4 data points on both my iPhone 4s and Chrome on my Windows laptop.

Another reason the current code has a weak fling is that the velocity was being calculated incorrectly. Because `delay` was added to the time delta, time was computed from n+1 points but distance from n points.

I also changed the default value of `inertiaThreshold` (intended to prevent unwanted additional movement if you stop dragging and then lift your finger) to `Infinity`, for two reasons:

1) A fling gesture often failed on my iPhone because the measured `delay` was higher than `inertiaThreshold` (current default 32), sometimes by hundreds of ms.
2) With the updated velocity code I don't see unwanted additional movement when I stop dragging and then lift my finger.

There is a remaining issue (with both the original and updated code). If you fling the map and try to fling it again before it stops moving, no drag events are generated for the second fling so it has no effect. I don't see this problem with e.g. Google or Apple maps. Entered as #3062.

Fixes #2987
2014-11-26 11:34:28 -05:00
Vladimir Agafonkin
1ec89d2fdc Merge pull request #3043 from kerryarts/ie8-zindex-fix
Default zIndex to be a valid value to fix exception in ie8
2014-11-24 15:48:42 +02:00
Vladimir Agafonkin
69e0d0233d Merge pull request #3052 from kshepard/fix-async-initialize
Initialize _sizeChanged to true to prevent async map initialization issues
2014-11-22 11:47:07 +02:00
Kenny Shepard
86a3e0cc8c Initialize _sizeChanged to prevent async issues
When asynchronously initializing a map, the series of events can
create a scenario where _size is incorrectly initialized, and
therefore calls to getSize will not cause a new value to be generated.

This fix sets _sizeChanged to true upon map initialization, which
allows the following first call to getSize to work properly.

Closes #3031
2014-11-21 17:54:46 -05:00
Vladimir Agafonkin
76440b9df2 Merge pull request #3050 from kdeloach/topic/disable-zoom-scrolling
Remove global variable that disables dragging for all maps during zoom
2014-11-21 21:52:42 +02:00
kdeloach
c97c48325a Remove global variable that disables dragging for all maps during zoom
Starting a zoom animation will disable dragging for all maps on the
page. Only the map that is being zoomed should have dragging disabled.

This fix removes a global static variable which is redundant since
the map pane already has a css class assigned to it for the duration of
the zoom animation.

Fixes #2539
2014-11-21 14:41:00 -05:00
Vladimir Agafonkin
e5ee31d6b5 Merge pull request #3048 from CloudNiner/feature/fix-2318
Closes #2318: getMaxZoom returns prev layer on baselayerchange
2014-11-21 21:01:21 +02:00
CloudNiner
703f9a47d9 Closes #2318: getMaxZoom returns prev layer on baselayerchange
Remove all old layers before adding new ones to avoid
the old properties being returned in the baselayerchange handler.
2014-11-21 13:49:10 -05:00
kerryarts
ff10d00297 Check for null before setting the zindex, and instead keep it null initially. This way calls to setZIndex() wont fail if passed null. 2014-11-21 17:11:10 +13:00
Vladimir Agafonkin
9128193e5b Merge pull request #3044 from kerryarts/vml-bringtofront-fix
Fix _bringToFront/Back implementation for VML renderer
2014-11-21 01:16:47 +02:00
kerryarts
0daf28fb4f Fix _bringToFront/Back implementation for VML renderer 2014-11-21 09:41:02 +13:00
kerryarts
756888cee7 default zIndex to be a valid value to fix exception in ie8 2014-11-20 17:11:02 +13:00
Vladimir Agafonkin
2bd788a7da Merge pull request #3038 from flemenach/worldcopy-inertia
Fix inertia animation with worldCopyJump enabled
2014-11-18 16:47:41 +02:00
flemenach
8c606358cc Fix inertia animation with worldCopyJump enabled 2014-11-18 09:32:46 +01:00
John Firebaugh
e0a75093dc Merge pull request #3028 from tomhughes/jshint
Don't require jshint as it is not used
2014-11-17 13:54:31 -08:00
Tom Hughes
8f5fe4defc Don't require jshint as it is not used 2014-11-15 14:43:57 +00:00
Vladimir Agafonkin
3318f8d424 Merge pull request #3024 from yohanboniface/shift-zoom
Implement fast zoom on minus/plus keydown with shiftKey
2014-11-14 18:17:51 +02:00
Yohan Boniface
f41f37c9c0 More compact code 2014-11-14 17:12:15 +01:00
Yohan Boniface
86de51ed9e We don't need an option for the zoom factor 2014-11-14 14:16:41 +01:00
Yohan Boniface
44a10690a7 Implement fast zoom on minus/plus keydown with shiftKey 2014-11-14 12:38:09 +01:00
John Firebaugh
87c7d1d563 No-op Control#remove if not on a map (fixes #2877) 2014-11-13 11:25:49 -08:00
Vladimir Agafonkin
37c5433e5b Merge pull request #3022 from Leaflet/3020
Remove control from existing map in onAdd (fixes #3020)
2014-11-13 20:57:55 +02:00
John Firebaugh
0b86fa3266 Remove control from existing map in onAdd (fixes #3020) 2014-11-13 10:49:43 -08:00
John Firebaugh
ef96884021 Ensure parent init hooks are called (fixes #2545) 2014-11-12 14:49:46 -08:00
Vladimir Agafonkin
b27f62387b Merge pull request #3018 from Leaflet/autoclose
Add autoClose option to Popup
2014-11-12 23:08:15 +02:00
John Firebaugh
bad49e7612 Add autoClose option to Popup
Fixes #2716
Fixes #1853
2014-11-12 12:52:50 -08:00
John Firebaugh
ad12e33dd9 Fix trailing whitespace 2014-11-12 11:30:43 -08:00
John Firebaugh
d2871e68e5 Add test for #3008 2014-11-12 10:53:26 -08:00
John Firebaugh
82934f95d9 Merge pull request #3008 from snkashis/imgoverlay_style
allow for setStyle option re: opacity on FeatureGroup to reach ImageOverlays
2014-11-12 10:50:11 -08:00
John Firebaugh
269700925a Merge pull request #3009 from snkashis/img_overlay_evt
add interactive option for events on ImageOverlay
2014-11-12 10:41:10 -08:00
Vladimir Agafonkin
de868d6a83 don't require DomEvent for attrib & markers, close #2854 2014-11-12 12:21:39 +02:00
Vladimir Agafonkin
8cc14fbd6f Merge pull request #3015 from Leaflet/2930
stopPropagation of click event following drag operation (fixes #2930)
2014-11-12 10:29:19 +02:00
John Firebaugh
aa8be54513 stopPropagation of click event following drag operation (fixes #2930) 2014-11-11 17:08:27 -08:00
Vladimir Agafonkin
d9a327007b Merge pull request #3014 from Leaflet/tile-loading
More tile loading fixes
2014-11-12 00:46:14 +02:00
Vladimir Agafonkin
c6bcdb031b fix ImageOverlay anim in weird projections, close #3011 2014-11-11 16:55:12 +02:00
Vladimir Agafonkin
d0f5b51ad5 fix awesome bug regression, close #3013 2014-11-11 12:38:42 +02:00
Vladimir Agafonkin
48677f2243 fix maxNativeZoom = 0 race condition, close #3004 2014-11-10 17:53:37 +02:00
Steve Kashishian
ca2f1171b7 add interactive option on ImageOverlay 2014-11-09 13:23:19 -06:00
Steve Kashishian
4317a10fc9 allow for setStyle option regarding opacity calls on FeatureGroup to reach ImageOverlays contained inside
Brought from @opie implementation in #2246
2014-11-09 11:57:01 -06:00
David Leaver
8682511e2c Move locally declared methods out. 2014-11-09 18:08:53 +13:00
John Firebaugh
68f86d85d3 Better fix for tile pruning
Need to always prune in _addTiles, otherwise tiles can
get stranded.
2014-11-07 16:27:42 -08:00
Vladimir Agafonkin
5f8d62dd45 Merge pull request #3007 from Leaflet/ie-touch-doubletap
Improve IE11 touch support
2014-11-07 22:49:30 +02:00
David Leaver
2dad982a6e Remove unused e parameter 2014-11-08 09:44:43 +13:00
David Leaver
e41c131dbb Remove touch tracking from DoubleTap and improve DomEvent.Pointer e.touches emulation to provide a suitable replacement.
Refs #2820
2014-11-08 09:40:01 +13:00
John Firebaugh
bfdb7d08c7 Don't delay tile updates triggered by moveend 2014-11-07 12:11:59 -08:00
John Firebaugh
7b5168acec Ensure that added tiles are retained
Previously, quickly zooming out and then back in sometimes left
only overzoomed tiles for the lower zoom level visible. The
problem was a race condition with deferred pruning:

1. Start at z15. Zoom in. This triggers loading of z14 tiles. As each
tile loads, _pruneTiles (throttled) is called. This results in deferred
removal of z15 tiles (250ms setTimeout). The deferral is done to avoid
flicker while the z14 tiles are faded in.
2. During the 250ms, zoom in. This triggers `_addTiles`, but since the
deferred pruning of the z15 tiles hasn't happened yet, the tiles are
still present in `this._tiles`. Therefore no tiles are queued for
loading, triggering an early return in `_addTiles`, before `_pruneTiles`
is called.
3. Deferred pruning of the z15 tiles happens. Since `_pruneTiles` was
short-circuited at z15, these tiles were never retained, nor were the
z14 tiles scheduled for pruning. End result is that the z15 tiles are
removed from the DOM while the z14 tiles remain, scaled 2x.
2014-11-06 16:27:47 -08:00
John Firebaugh
78463e826b jshint 2014-11-06 16:27:47 -08:00
Vladimir Agafonkin
5f9321bac0 Merge pull request #3001 from snkashis/latlng_bounds_conversion
extract bounds conversion from Map.Geolocation.Also fix geolocation test...
2014-11-06 21:55:57 +02:00
Steve Kashishian
f3b132e414 extract bounds conversion from Map.Geolocation.Also fix geolocation test page. 2014-11-06 13:23:14 -06:00