Commit Graph

82 Commits

Author SHA1 Message Date
Tom Payne
1d40b64db1 Move WebGL context creation into ol.webgl 2012-10-17 17:23:30 +02:00
Tom Payne
936584ceaa Use goog.array.map for browser compatability, thanks @AugustusKling 2012-10-10 13:49:01 +02:00
Tom Payne
ac8dd5db98 Fix sort problem identified by @tschaub in f8462460bf 2012-10-10 10:27:42 +02:00
Tim Schaub
f8462460bf Two lessons learned
Telling the compiler that object keys are numeric causes more harm
than good (see === comparison that could never be met though the
compiler didn't catch it).

Never use goog functions without reading the source first.  The
goog.array.sort method does nothing special sorting numeric strings
(so the zs array might be ['1', '10', '2'] here).
2012-10-09 23:31:38 -06:00
Tim Schaub
ce1b99cb56 Remove alt-z tiles when all tiles load at target z
The changes in a14a15159f made it so tiles
at alternate resolutions were not pruned when target tiles finished loading.
2012-10-09 22:56:37 -06:00
Tim Schaub
a14a15159f Simpler and more thorough tile pruning
The render method always generates a map of all tiles that should be drawn
(called tilesToDrawByZ).  This includes tiles at alternate resolutions, tiles
still loading, and tiles previously rendered.  At the end of the render
sequence we can simply remove all previously rendered tiles that aren't in
tilesToDrawByZ.  This provides an alternate solution to the problem described
in #53 and more.
2012-10-08 00:41:21 -06:00
Tim Schaub
2c2d40a53c Remove tiles outside rendered extent
To avoid having misplaced at alternate resolutions while zooming, all tiles
outside the rendered extent need to be removed from the dom (closes #53).
2012-10-07 23:47:47 -06:00
Tim Schaub
d6173a5aac Removing unused code 2012-10-07 22:57:09 -06:00
Tom Payne
d35df1d53b More detailed texture upload logging 2012-10-04 11:38:21 +02:00
Tom Payne
21ab556d2f Cope with layers being undefined 2012-10-04 11:38:21 +02:00
Tim Schaub
c120c03fb1 Properly maintain offset and origin while rotating
This brings equivalent behavior when rotating in both renderers.  Previously, offsets were maintained with style top/left.  Now a single transform handles the translation and rotation.  The scale3d function removes the separation between tiles.  The next step for the DOM renderer is to scale in this same transform.
2012-09-29 17:55:28 -06:00
Tom Payne
71e42b2448 Refactor build system
This rather large commit refactors the build system to solve a number of
problems:
- Object literal types are now declared in just one place
- There are no more circular dependencies
- There is no need for concealed subclasses in build-standalone mode

When building in standalone mode, you need to include the source in
build/src/external.  This declares object literal types as externs so
that their properties are not renamed.

When building with the application, you need to include the source in
build/src/internal.  This declares object literal types as typedefs so
that their properties can be renamed and removed.

Note also that ol.MapOptions has been merged into ol.Map, with some
renaming.
2012-09-29 11:51:53 +02:00
Tim Schaub
67bc677ecb Stick with radians 2012-09-29 01:37:54 +02:00
Tim Schaub
50bf2f015c Getting rid of lines between rotated tiles
Applying the scale3d trick just to get rid of small pixel gap between rotated tiles.  This will be reworked soon with additional use of transforms.
2012-09-29 01:33:50 +02:00
Tom Payne
e36169c936 Ignore all errors in when testing for WebGL 2012-09-28 21:36:03 +02:00
Tom Payne
2713addb33 More accurate WebGL support test, see issue #31 2012-09-28 20:05:14 +02:00
ahocevar
3d62b67172 Introducing ol.overlay.Overlay and an overlayContainer
ol.overlay.Overlay can be used to bind DOM elements to a
coordinate on the map. It has positioning options to support
e.g. popups or image markers that have an anchor at the bottom
and an unknown size.

The overlayContainer stops propagation on mousedown and
touchstart events, so clicks and gestures on overlays don't
trigger any MapBrowserEvent. To make this work reliably, we now
only fire dblclick in mapbrowserevent.js when there was a
previous mousedown or touchstart. The default container for
controls is now the overlayContainer.
2012-09-28 13:01:56 +02:00
Tim Schaub
6ed27779cc Rotation support for the dom renderer
Thanks @fredj for the inspiration.  This gives us initial rotation support.  It exposes some issues in the interactions that I'll address separately.  Closes #22.
2012-09-28 10:53:36 +02:00
Tom Payne
e3c3c13ac2 Use goog.vec.Mat4.rotateZ 2012-09-27 18:21:33 +02:00
Tim Schaub
981a40a994 Remove tiles that are still loading at alt z
When zooming to a new zoom level, we can immediately remove tiles from the previous level.  This (strongly) suggests not adding images to the container until they have actually loaded.
2012-09-27 17:46:23 +02:00
Tim Schaub
b8a69f0777 Adjusting layers pane only when necessary
We only want to adjust things that have to do with rendering (like the position of the layers panel) when actually rendering.  The handleXChange methods may be called more times than we can actually render, so we never want to do anything that touches the DOM there.  Instead, we have to keep track of the state at previous render and adjust the layers panel (or other) based on changes only when rendering.
2012-09-27 16:09:04 +02:00
Tim Schaub
9f9729656b Todos done. 2012-09-27 16:09:03 +02:00
Tom Payne
7625607fd1 Only resize canvas when renderering 2012-09-27 14:05:19 +02:00
Tom Payne
ac0e02039c s/POST_RENDER/POSTRENDER/ 2012-09-27 14:05:19 +02:00
Éric Lemoine
f78cad0d77 Merge pull request #27 from elemoine/constraints
Refactoring to make constraints work at the map level
2012-09-27 01:42:45 -07:00
Tom Payne
d3b9af30d0 Don't modify return type of method 2012-09-27 09:36:55 +02:00
Tom Payne
50334b7971 s/ol.TileLayer/ol.layer.TileLayer/ 2012-09-27 09:36:55 +02:00
Éric Lemoine
b6bb05bf76 Refactoring to set the constraints to the map 2012-09-27 00:09:29 +02:00
Tom Payne
290d03e76f s/store/source/ 2012-09-26 19:43:23 +02:00
ahocevar
4257f5c7c6 Removing unneeded preventDefault calls 2012-09-26 18:26:11 +02:00
Tim Schaub
3510c37e43 Handle map size changes in the renderer 2012-09-26 14:10:16 +02:00
Tim Schaub
5b36cf1312 Only adjust tile when necessary 2012-09-26 13:12:36 +02:00
Tim Schaub
24edce24f1 Add alternate tiles under tiles at target z
When zooming or panning, if we have tiles at alternate resolutions, those tiles are inserted in the DOM before the tiles at the target resolution.  This means you should see blurry tiles instead of whitespace when panning (assuming you've already zoomed in a bit).
2012-09-26 12:18:11 +02:00
Tim Schaub
48c4cbc1e5 Correcting comment typos 2012-09-26 11:11:51 +02:00
Tim Schaub
8e38ab0fdc Lint free. 2012-09-26 10:58:17 +02:00
Tim Schaub
3479e20b0a Merge branch 'alt-tiles' 2012-09-26 10:55:25 +02:00
Tim Schaub
7f58d1a8c6 Proper handling of out-of-range and alt-z tiles
Tile pruning code separated into to methods for clarity.  Alt-z tiles are only removed when all current-z tiles have loaded.  Thanks @elemoine for the excellent debugging session.
2012-09-26 10:52:17 +02:00
Tim Schaub
299173194c First pass at alt-tile rendering for dom renderer 2012-09-25 20:06:20 +02:00
ahocevar
b151304630 Prevent default on mousedown and touchstart for all renderers
By doing this on the map renderer, we do not need to duplicate code for the webgl and dom renderers.
2012-09-25 17:28:01 +02:00
Tom Payne
8369924511 Remove debug code 2012-09-25 14:00:19 +02:00
Tom Payne
06ea619989 Avoid re-rendering framebuffer in simple cases 2012-09-25 13:54:15 +02:00
Tom Payne
c2e08861e5 Correct order of transformations 2012-09-25 12:23:11 +02:00
Tim Schaub
900eead7c6 Correct type for imagesToLoad. Add note about shorter path. 2012-09-25 12:08:02 +02:00
ahocevar
6b8e14c623 Don't trigger extra drag events on touch devices. 2012-09-25 08:30:57 +02:00
Tom Payne
2d7a21eaa0 More gjslint fixes 2012-09-25 00:03:53 +02:00
Tom Payne
8394147df1 Satisfy gjslint 2012-09-24 21:25:29 +02:00
ahocevar
002e23cb74 Satisfy latest Closure library/tools. 2012-09-24 17:59:34 +02:00
Tim Schaub
1f9e2aa3c4 Move Layer into ol.layer namespace. 2012-09-24 17:08:36 +02:00
Tom Payne
a416d1f601 s/TileBounds/TileRange/ 2012-09-24 14:33:24 +02:00
Tom Payne
f8c31ba45c s/ol3/ol/ 2012-09-24 14:21:41 +02:00