Commit Graph
100 Commits
Author SHA1 Message Date
ahocevar 6fca6aef60 Addressing @bartvde's review comments 2013-03-20 10:23:00 +01:00
ahocevar bed011514f Increasing point radius for easier touch selection 2013-03-20 05:12:35 +01:00
ahocevar d2a32d5421 Simplifying and unhacking the ModifyFeature control
With two nested controls (DragFeature, SelectFeature), which - among
others - activated two OpenLayers.Handler.Feature instances, the
ModifyFeature control was fragile and hard to debug.

The issue that @iwillig, @bartvde and myself tried to track down was
that the two Feature handlers interfered with each other, making it hard
to select features on mobile devices, and causing points to jump during
dragging because of not updated last pixel positions.

With this refactoring, there are no more nested controls. All that's left
is a Drag handler. All tests pass. I had to remove one test that checked
for dragging of an unselected point while another was selected, because
now (and partially even before this change, thanks to the ugly drag
handler hack that is now removed) dragging a point will also select it,
saving the user an extra click.
2013-03-19 23:00:10 +01:00
ahocevar 7002ec49e7 Merge pull request #903 from ahocevar/903
Google Maps and WMS layer Backbuffer error. r=@mosesonline
2013-03-19 14:38:46 -07:00
ahocevar 3dea8dacb4 Using the correct parent node
When we have a Google base layer, the parent node of the base layer's div
will be a different one.
2013-03-13 08:06:41 +01:00
ahocevar 5b98769234 Merge pull request #896 from mosesonline/refresh-bugfix
Refresh bugfix
2013-03-01 07:02:35 -08:00
ahocevar 2f85ca99bf Remove osm layer when back in Vienna
Thanks @tschaub for this suggestion.
2013-02-17 12:53:59 +01:00
ahocevar 419cb272c7 Adding ZoomBox and OSM fallback layer
Using the new defaults, we don't need to pass options to the Navigation
control anymore. As a side effect, we get ZoomBox, but need to add css for
it to work properly. For users outside Vienna, an OSM fallback layer was
added which gets activated when the viewport does not intersect Vienna.
2013-02-16 10:32:35 +01:00
ahocevar ba0ba64c74 Updating PinchZoom tests (see #800)
With the map's applyTransform method, the control does not need and have
its own applyTransform and center management any more.
2013-02-14 22:13:07 +01:00
ahocevar e9b65691c4 Updating example to match @ahocevar's mobile-wmts-vienna branch 2013-02-14 10:44:41 +01:00
ahocevar 4b163e0482 Merge pull request #800 from ahocevar/transform
Use GPU where available; animated zooming. r=@elemoine
2013-02-14 01:15:18 -08:00
ahocevar 18b0c5fc7d Merge pull request #812 from ahocevar/mousewheel
Better mousewheel/touchpad behavior for zooming. r=@elemoine
2013-02-14 01:13:56 -08:00
ahocevar d0249643b3 Incorporating @elemoine's review comments 2013-02-14 10:11:48 +01:00
ahocevar f46ed44131 Merge pull request #857 from faegi/featureClickPatch
Clear cached mousedown/up positions used for distinguishing between (fix #856).
2013-02-12 01:46:30 -08:00
ahocevar 982302ff03 Merge pull request #877 from finn-no/panzoombar-fix
Fix click on PanZoomBar when page is scrolled (fix #798).
2013-02-11 23:58:41 -08:00
ahocevar 47d60a6ab8 Merge pull request #874 from ahocevar/tilemanager-backbuffer-id
Tile images should not have an id. r=@bartvde
2013-02-07 08:17:35 -08:00
ahocevar 7936f0345f Tile images should not have an id
When the TileManager adds an image to its cache, it might be a backbuffer
image. Backbuffer images have an id with a '_bb' postfix. Regular images
do not have an id at all. In OpenLayers.Layer.Grid, in
addTileMonitoringHooks, a loadend listener is created for each tile. This
listener checks for tie image id, and will remove it from its parent node.
This will cause images to be removed from the layerDiv if the image comes
from the TileManager's tileCache and was on a backbuffer by the time it was
added to the cache.

Simply removing the image's id before assigning it to a tile resolves the
issue.
2013-02-07 16:44:16 +01:00
ahocevar 47e7c300a8 Merge pull request #863 from ahocevar/uncache
Uncache images that are no longer valid. r=@bartvde
2013-02-01 06:01:40 -08:00
ahocevar 378a0e97b5 Uncache images that are no longer valid
When a layer sets a cached image's className to something else than
.olTileImage (e.g. by setting .olTileReplacing), we should not keep the
image in the cache any more, because it may no longer be valid.
2013-02-01 00:58:40 +01:00
ahocevar 40f9296372 Merge pull request #850 from eykamp/irregular_character
Irregular character
2013-01-22 06:56:25 -08:00
ahocevar 32d7e02ec0 Merge pull request #843 from ahocevar/early-loadend
Safeguard against listeners that recreate the grid. r=@bartvde
2013-01-17 07:30:22 -08:00
ahocevar c742c14a52 Safeguard against listeners that recreate the grid
We need to handle the backbuffer before we fire the loadend event.
Otherwise listeners that call e.g. mergeNewParams() will cause the
backbuffer removal code to fail, because tile.imgDiv (and hence
this._transitionElement) will be null.
2013-01-17 16:24:15 +01:00
ahocevar 86c425774a Merge pull request #839 from ahocevar/tilemanager-changelayer
Process queue immediately when params change. r=@bartvde
2013-01-16 04:14:50 -08:00
ahocevar e23c18a09c Process queue immediately when params change
This fixes an issue where the queue would never be processed when a layer
is updated using mergeNewParams.
2013-01-16 12:09:37 +01:00
ahocevar 2a7547c36c Merge pull request #836 from ahocevar/replacing
No .olTileReplacing class for singleTile layers. r=@bartvde
2013-01-16 02:48:26 -08:00
ahocevar fde7c5cc76 After #829 fallThrough needs to be true for this test 2013-01-15 13:41:26 +01:00
ahocevar 2cd14dfbfd No .olTileReplacing class for singleTile layers
This fixes a regression for singleTile layers with transitionEffect set to
'resize', where the .olTileReplacing class was not removed from the tile.
2013-01-15 13:08:48 +01:00
ahocevar 3107751fb7 Clarifications on fallThorugh (see #829) 2013-01-10 22:12:35 +01:00
ahocevar 158185e9a2 Merge pull request #829 from bjornharrtell/fallThough
Default fallThrough to false
2013-01-10 13:08:21 -08:00
ahocevar 774e983631 Turning on GPU for the tiles only turns out to be faster
Especially on iOS 6, this gives way better performance. And it does not
seem to cause any additional flicker.
2013-01-09 14:38:18 +01:00
ahocevar 9b7e35d1dd Merge branch 'master' of github.com:openlayers/openlayers into transform
Conflicts:
	theme/default/style.css
2013-01-09 14:31:52 +01:00
ahocevar 6ce72e9185 Adding TileManager to mobile build profile, and note in Map.js
As suggested by @probins; see #702.
2013-01-08 14:26:18 +01:00
ahocevar 8b501eb051 Merge pull request #811 from ahocevar/mergenewparams
When the resolution does not change, remove backbuffer tile by tile. r=@bartvde
2013-01-07 13:45:53 -08:00
ahocevar f0db21f9c9 Fixing tests 2013-01-07 18:16:23 +01:00
ahocevar c8564838bc When the resolution does not change, remove backbuffer tile by tile
This change introduces a new 'replace' mode for tile transitions: when the
resolution does not change, which happens when mergeNewParams is called,
the tile will be marked with the .olTileReplace class. If this class sets
the tile's imgDiv display to 'none', the backbuffer for the tile will
immediately be removed when the tile is loaded.
2013-01-07 15:42:34 +01:00
ahocevar 18d548f979 Merge pull request #702 from ahocevar/smart-queue
New tile image cache and tile queue improvements. r=@bartvde,@elemoine
2013-01-07 06:38:07 -08:00
ahocevar 4a3651b7da Release notes and additional in-line comment
As suggested by @bartvde.
2013-01-07 15:30:05 +01:00
ahocevar 80f13188a3 Addressing @bartvde's review comments 2013-01-07 14:26:41 +01:00
ahocevar 1eeda5d9f7 Merge pull request #823 from probins/maxextent
Overview map should use map.getMaxExtent
2013-01-07 00:56:05 -08:00
ahocevar 94020f0fb1 Merge pull request #822 from probins/mapmax
Map: correct docs for maxExtent
2013-01-07 00:55:22 -08:00
ahocevar f71976b487 Merge pull request #818 from Turbo87/encoded-polyline
examples/vector-formats: Added "Encoded Polyline" format
2013-01-02 07:03:12 -08:00
ahocevar b57540ecfc Merge pull request #813 from Turbo87/encoded-polyline
Format: Added EncodedPolyline class. Merging this as a first step towards
support for alternative geometry encodings. See #813 for TBDs.
2012-12-28 11:55:12 -08:00
ahocevar 4b2e80fa36 Merge pull request #805 from mosesonline/unselectAllFix
unselectAll on removing layer fix
2012-12-24 06:17:04 -08:00
ahocevar 07e039b566 Merge pull request #803 from ahocevar/tween-framerate
Tween: skip frames when minimum frame rate is not reached. r=@bartvde
2012-12-24 06:11:11 -08:00
ahocevar 1b2003a2b4 Recovering from merge conflicts 2012-12-23 19:18:26 +01:00
ahocevar 21448d2fd5 Adding animated zooming 2012-12-23 18:47:03 +01:00
ahocevar d2b3bded72 Better way to get GPU support, and avoid flicker
These declarations were suggested on
http://blog.teamtreehouse.com/increase-your-sites-performance-with-hardware-accelerated-css
2012-12-23 18:34:55 +01:00
ahocevar afe53aba7d Put backbuffer below all layers, except when panning 2012-12-23 18:34:55 +01:00
ahocevar 0b8deb11a2 Revert "No backbuffer removal delay needed with 3d enabled"
This reverts commit 7e8271525ed52288092a135b1c65eed4849c8e49.
2012-12-23 18:34:55 +01:00
ahocevar aa5bab250a 3d transforms in svg content are bad in other browsers as well 2012-12-23 18:34:54 +01:00
ahocevar a309b24053 Only use 3d transforms when stylesheet has transform on layerContainerDiv
This allows users to control whether 3d acceleration should be used or not:
Just like with plain web pages, having a stylesheet that sets a transform
on the map's layerContainerDiv will make OpenLayers use translate3d and
scale3d. When no such transform is set in the stylesheet, style.left and
style.top will be used, except for e.g. pinch zoom, where scaling is
needed.
2012-12-23 18:34:54 +01:00
ahocevar 13b4ca6560 Do not set translate3d on svg children
In current Webkit browsers, having translate3d on svg child elements
causes the positioning from the layer not to be inherited by the vector
layer content.
2012-12-23 18:34:54 +01:00
ahocevar b89d3f1ee8 Going one element up with GPU support, adding it to mobile css also 2012-12-23 18:34:54 +01:00
ahocevar c03f1dc9bf Own applyTransform method is no longer needed 2012-12-23 18:34:53 +01:00
ahocevar 25c8b0ceaf Adding transforms to turn on GPU 2012-12-23 18:34:53 +01:00
ahocevar 980792e190 GPU needs to be turned on for all elements we move 2012-12-23 18:34:53 +01:00
ahocevar 3d79001a92 Updating and adding tests 2012-12-23 18:34:53 +01:00
ahocevar 3ab9a1f63b No closure, to make testing easier 2012-12-23 18:34:52 +01:00
ahocevar f51211e93f No magic for loadend delay
This change reintroduces the removeBackBufferDelay, and documents exactly
what it does and when it may be useful.
2012-12-23 18:34:52 +01:00
ahocevar 1764bbdd18 Giving the last tile time to render
The loadend event of an image is fired before the image is rendered. For
standard 256x256 tiles, this does not matter. But for singleTile layers on
large screens, rendering time needs to be considered. So we add a delay
that depends on the tile size. TODO: make the denominator configurable.
2012-12-23 18:34:52 +01:00
ahocevar a02163f01d No backbuffer removal delay needed with 3d enabled 2012-12-23 18:34:52 +01:00
ahocevar eb65336fa9 Adding docs, removing console.log 2012-12-23 18:32:27 +01:00
ahocevar 64d291ea20 Turn on GPU support for all children of the layerContainerDiv
This seems to remove all kinds of flicker and jumpiness, and to me it feels
also like it makes panning on slow mobile devices smoother.
2012-12-23 18:32:26 +01:00
ahocevar 44f28f8791 Use translate3d and translate where available. 2012-12-23 18:32:26 +01:00
ahocevar 1081fc4b54 Better mousewheel/touchpad behavior for zooming
The navigation control gets better defaults, and the MouseWheel handler
gets a new maxDelta option, which can be used to avoid huge zoom level
jumps on heavy wheel/pad movements.
2012-12-23 18:01:17 +01:00
ahocevar efd2de870a Recovering from merge conflicts 2012-12-23 17:24:20 +01:00
ahocevar 64177a52ec Enable fade-in for tiles from cache when we have a backbuffer 2012-12-23 17:00:47 +01:00
ahocevar a02e08ad2a New beforeload event and slightly changed loading sequence
Having the TileManager remove an image from the DOM, then setting the
cached image, and then having to position it felt a bit awkward. With the
new beforeload event, the setImage method and putting renderTile before
positionTile, providing the cached image feels way more natural.
2012-12-23 17:00:46 +01:00
ahocevar 64df7e3d04 Remove images from dom when replacing them with cached images 2012-12-23 17:00:46 +01:00
ahocevar faa0e60b99 512 tiles is too much for some mobile browsers 2012-12-23 17:00:46 +01:00
ahocevar c0913668d3 moveTimerId is no longer used 2012-12-23 17:00:45 +01:00
ahocevar ecbedf5536 Updating tests 2012-12-23 17:00:45 +01:00
ahocevar 273657a6ab Adding API docs for the tileManager property 2012-12-23 17:00:45 +01:00
ahocevar 781f2ac73d Configure maps with TileManger instances (and not the other way around)
This resolves issues with destroying caches on window unload, and makes
cache sharing among maps less confusing to configure.
2012-12-23 17:00:45 +01:00
ahocevar 9609bb1449 Adding destroy method, as suggested by @bartvde 2012-12-23 17:00:45 +01:00
ahocevar 80fa251649 New TileManager
This removes all tile queueing/loading specific code from Layer.Grid
and creates a new class that manages tile loading and caching.
2012-12-23 17:00:45 +01:00
ahocevar 2ee362a79b New tile image cache and tile queue improvements
We now reuse tile images by maintaining a cache of image elements with a
simplified LRU expiry policy (by order, not by timestamp). The tile queue
is bypassed for images that are available in the cache, so they can be
rendered immediately. And the tile queue itself loads more than just one
image at a time now (2 per layer url).
2012-12-23 16:57:24 +01:00
ahocevar 9759902dac Fixing API; addressing @mpriour's doc comment
Previously, minFrameRate could not be set as option with the start method.
The tests failed to catch this flaw. Now both the start method and the
tests are fixed.
2012-12-21 21:24:04 +01:00
ahocevar 810d9ea95d Fixing line breaks. 2012-12-21 13:10:26 +01:00
ahocevar c6aa104462 Merge pull request #810 from ahocevar/transitionend
Use transitionend listeners where available. r=@bartvde
2012-12-21 04:08:29 -08:00
ahocevar fcd8586883 Using an array for the transitionend event names 2012-12-21 13:07:36 +01:00
ahocevar 43c646b6da Use new Opera event name as well
As pointed out by @bartvde, according to
http://stackoverflow.com/questions/5819912/webkit-transition-end-in-mozilla-and-opera,
Opera uses otransitionend or oTransitionEnd, depending on the version.
2012-12-21 13:01:15 +01:00
ahocevar dd244e6988 Use transitionend listeners where available
In addition to relying on removeBackBufferDelay, we can remove the
backbuffer earlier without flicker in an ontransitionend listener on the
last loaded tile.
2012-12-21 12:33:28 +01:00
ahocevar 86db8fabc6 Merge pull request #807 from ahocevar/units
WMTS Example misaligning with OSM base layer. r=@sbrunner
2012-12-20 14:35:57 -08:00
ahocevar fc64b2c5f8 Fixing tests properly, as suggested by @sbrunner 2012-12-20 16:30:58 +01:00
ahocevar f5d7f794c9 Some tweaks to make tests pass again 2012-12-19 23:13:11 +01:00
ahocevar 893966dfae 'm' and 'Meters' in OpenLayers.INCHES_PER_UNIT are not the same
OpenLayers.INCHES_PER_UNIT.m should equal
OpenLayers.INCHES_PER_UNIT.Meters, just like OpenLayers.INCHES_PER_UNIT.km
should equal OpenLayers.Inches_PER_UNIT.Kilometers. This confusion probably
comes from mixing International inches with US Survey inches when compiling
the unit conversion list (1 meter is 39.37007874 International inches, but
39.37 US Survey inches. It may not be obvious, but 'inches'/'Inch' in
OpenLayers means US Survey inch, and 'IInch' means International inch).

This change also fixes offsets caused by incorrect resolution calculations in
OpenLayers.Format.WMTSCapabilities.
2012-12-19 22:23:45 +01:00
ahocevar f0f1ea0867 Skip frames when minimum frame rate is not reached
The new minFrameRate option is used to make sure that an animation does not
run longer than the time calculated from that frame rate. Time is made up
by skipping frames, i.e. skipping execution of the eachStep callback.
2012-12-17 14:54:08 +01:00
ahocevar 257b249b9d Updating notes after 84cf468 2012-12-14 09:35:15 +01:00
ahocevar 84cf468a22 Use http protocol for non-http (i.e. file) URIs (see #700) 2012-12-14 09:30:13 +01:00
ahocevar 083fcca882 Fixing tests (see #700) 2012-12-14 09:07:26 +01:00
ahocevar ab5035ba05 Note about Bing protocol change (see #700) 2012-12-14 01:28:21 +01:00
ahocevar bb788fdd0b Merge pull request #700 from rjmackay/bing-maps-ssl-699
Make Bing maps use SSL (if current document does)
2012-12-13 16:23:54 -08:00
ahocevar 7061cbf0fa Merge pull request #787 from ahocevar/mousewheel-event
Wheel handler does not work on IE when interval is set. r=@bartvde
2012-12-10 14:02:58 -08:00
ahocevar e295e3b70f Merge pull request #788 from ahocevar/no-opacity
Rework of Google layer leads to map div transparency. r=@bartvde
2012-12-10 00:49:54 -08:00
ahocevar e2dcfb7965 Merge pull request #791 from ahocevar/google-tilesloaded
Do not add viewport to GMaps object before it is fully rendered. r=@bartvde
2012-12-10 00:48:30 -08:00
ahocevar 6724098f5b Notes about Google.v3 layers (see #484) 2012-12-08 20:10:52 +01:00
ahocevar ab53f7c311 Do not add viewport to GMaps object before it is fully rendered
This avoids issues with Elements renderers, where the nodeFactory method
cannot find nodes while the map viewport is transitioning from the mapDiv
to the googleControl.
2012-12-08 14:53:48 +01:00
ahocevar 64508c741e Avoid transparent OpenLayers content on top of Google layer 2012-12-08 01:53:44 +01:00
ahocevar c36b897878 Removing unused code
Because this method is called by OpenLayers.Function.bindAsEventListener,
which conditionally assigns window.event already, e cannot be null or
undefined here.
2012-12-07 21:10:20 +01:00