Commit Graph
100 Commits
Author SHA1 Message Date
ahocevar df4f2c4c0a No projection configuration needed on the layer 2013-03-05 15:25:47 +01:00
ahocevar 8fd25749c0 Merge pull request #276 from ahocevar/wms-params
WMS GetMap request parameters shall be params. r=@elemoine
2013-03-05 02:13:37 -08:00
ahocevar 19f8692672 Moving VERSION into params 2013-03-05 11:11:41 +01:00
ahocevar 4bb521db65 WMS GetMap request parameters shall be params
To avoid surprises, we configure everything that is a WMS GetMap
request parameter in the params object, and not as direct
configuration option. This affects the VERSION and TRANSPARENT
params.
2013-03-05 10:54:33 +01:00
ahocevar 2676050d54 Do not use tiledWMSOptions in closure function
See #269.
2013-03-05 10:50:46 +01:00
ahocevar 3803275a1e Merge pull request #269 from ahocevar/wms-extent
Fixing extent check for undefined extents. r=@elemoine
2013-03-05 00:54:12 -08:00
ahocevar 19aeb04141 Fixing extent check for undefined extents.
Thanks @marcjansen for spotting this. To make the epsg-4326
example work, I also had to change the WMS version to 1.1.1.
2013-03-05 09:47:52 +01:00
ahocevar 3526244e0c Merge pull request #268 from ahocevar/wms-improvements
Support tile sources without configured projection. r=@twpayne
2013-03-04 16:48:09 -08:00
ahocevar 23c09abd3a Calling getTileSize with z argument
Thanks for catching this @twpayne.
2013-03-05 01:47:28 +01:00
ahocevar 66b790294d Merge branch 'master' of github.com:openlayers/ol3 into wms-improvements
Conflicts:
	src/ol/source/tiledwmssource.js
	test/spec/ol/tileurlfunction.test.js
2013-03-05 00:55:52 +01:00
ahocevar 586f393492 Support tile sources without configured projection
This change adds a lot of flexibility to working with tile
layers: Sources where the server projection or tile grid do not
matter can now be constructed without specifying a projection or
tile grid.

The tileUrlFunction/imageUrlFunction now also creates updated
URLs when the params of the layer change, so things like
mergeNewParams in ol2 will be possible.

A nice side effect of this whole change is that there is no more
duplicated code between tiled and single image WMS layers.

While I was at it, I also fixed a WMS 1.1.1 axis order issue
and incorrect STYLES params (STYLES=& instead of STYLES&).
2013-03-05 00:46:58 +01:00
ahocevar 7c05587aed Merge pull request #114 from ahocevar/resolutions
Use validity extent to generate default resolutions. r=@twpayne,@elemoine
2013-01-16 07:17:10 -08:00
ahocevar 87ce763ccb Use validity extent to generate default resolutions
Previously, the TiledWMS source generated a resolutions array
derived from the world extent in meters, to match the default
Web Mercator resolutions of the map. This wouldn't work for
projections with distance units different than meters. It is
better to commit to a default resolutions array where zoom level
0 is the validity extent of the projection (not the Web Mercator
world extent!) at a 256 pixel tile size.
2013-01-14 16:10:55 +01:00
ahocevar 3d84571043 Use WebGL now that server sends CORS headers (see #75) 2012-11-03 10:33:20 +01:00
ahocevar 13e48787a3 Merge pull request #79 from ahocevar/projection
Projection handling improvements. r=@twpayne, @elemoine
2012-10-31 10:13:17 -07:00
ahocevar eb4a8683e2 Projection handling improvements
* The Map's private createProjection_ method is now a public
  method of the Projection. It is also used by TiledWMSSource
  to calculate the appropriate projection from the user
  configuration.
* ol.Projection.addProjection now adds the transformation for
  the source == target case. This makes it easy for the user
  to create custom projection maps without including proj4js and
  without adding a custom transformation, as long as the
  userProjection equals the projection.
* The TiledWMSSource now uses the same default resolutions as
  the map (i.e. the OSM resolutions)
* The modulo calculation for wrapping extents now works for all
  grid configurations, by not calculating the number of columns
  based on an assumption about the way the zoom levels relate to
  resolutions.
* The wms-custom-proj example now shows how to properly
  configure a custom resolution, i.e. by using the validity
  extent of the projection as its extent.
2012-10-31 13:17:58 +01:00
ahocevar f4139f208a Merge pull request #74 from ahocevar/tiled-wms
Adding tiled WMS source. r=@twpayne,@elemoine
2012-10-29 01:47:20 -07:00
ahocevar e157d17ab7 Addressing review comments regarding typeDef 2012-10-29 09:44:25 +01:00
ahocevar 393bb36784 Removing standalone example 2012-10-29 09:36:08 +01:00
ahocevar b170fa3d16 Using DOM renderer; no custom extent for layers
The server does not send CORS headers, so we cannot use the
WebGL renderer. Since the layers use the projection's extent,
it is not necessary to specify the extent.
2012-10-29 09:34:53 +01:00
ahocevar 0c77aacf33 proj4js externs are not necessary 2012-10-29 09:33:00 +01:00
ahocevar e672083027 Indentation and line break fixes 2012-10-28 23:59:36 +01:00
ahocevar e5308fec40 No extent magic
Setting the extent on a tile source now only means that tiles
won't be drawn outside that extent. Now the only way to specify
the origin of the tile grid is to provide a custom tileGrid. By
default, the grid origin is the top left corner of the
projection's extent.
2012-10-27 17:28:08 +02:00
ahocevar b872b5a74f Cross origin handling to make example work in Firefox
The WMS used in the example does not send CORS headers (I think
not many WMS services do). It seems that the WebGL renderer
needs script access to the image data, so the example only works
with the DOM renderer in Firefox.
2012-10-27 09:16:09 +02:00
ahocevar 433b12c39a Using the projection's extent for resolutions math by default
This ensures that maps with WMS layers with different extents
do not scale the tiles differently for each layer when the
default tileGrid is used. Note that it is always possible to
configure WMS sources with a custom tileGrid.
2012-10-26 22:51:30 +02:00
ahocevar 084506cdb5 Adding tiled WMS source
As shown in the example, this adds support for tiled WMS layers.
2012-10-26 21:36:30 +02:00
ahocevar 69859b415b More MapBrowserEvent improvements
Now we use the browser's native dblclick event on pointer
devices, and we fire dragstart and dragend only if we're really
dragging, and not on mousedown/touchstart and mouseup/touchend.
2012-09-29 18:54:29 +02:00
ahocevar 877971185f MapBrowserEvent simplifications and improvements
We don't register two listeners for mouseup and touchend any
more. And instead of using the native click event on touch
devices, we react on touchend, to make clicking more responsive.
On pointer devices, the underlying native event of a dblclick
event is now a click event.
2012-09-29 16:51:08 +02:00
ahocevar 6267100871 Move customizations out of arrow_box CSS 2012-09-29 16:48:22 +02:00
ahocevar 2b53481932 Making Vienna's location more accurate 2012-09-29 09:54:34 +02:00
ahocevar dcc3fdde96 Fixing popup in example 2012-09-28 19:19:46 +02:00
ahocevar 467fef8875 Updating readme
File urls work fine now, so using a HTTP server has become
optional.
2012-09-28 17:07:33 +02:00
ahocevar 163737d3de Adding popup to full-screen example 2012-09-28 16:47:55 +02:00
ahocevar 6b395cafb5 Stop click event, as previously promised
This should have gone in with 3910318f1b.
2012-09-28 16:47:54 +02:00
ahocevar 82058412a1 Bringing label markup back
Also with a bit of css, we can make the label invisible before
it gets added as overlay to the map.
2012-09-28 14:44:36 +02:00
ahocevar b233b8e1a5 Making sure that position:absolute is set
Positioning of overlays is only possible when position:absolute
is set on the element. So we set it programmatically now.
2012-09-28 14:44:35 +02:00
ahocevar 3910318f1b Merge pull request #30 from openlayers/overlay
Introducing ol.overlay.Overlay and an overlayContainer. r=@twpayne
2012-09-28 04:05:21 -07: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
ahocevar 9536ba8e14 Common place to store browser features
The ol.BrowserFeature object is supposed to provide all detected browser features in a central place.
2012-09-27 17:09:19 +02:00
ahocevar 26e3179b2e Making linter and Travis happy 2012-09-27 12:18:05 +02:00
ahocevar caaec7c366 Use the map's zoom method instead of our own
This also allows us to get rid of the resolutions constraint and configuration.
2012-09-27 12:05:53 +02:00
ahocevar 1b18dbedb7 Dispatch MapBrowserEvent before interactions get it
By doing so, application event handlers can preventDefault on the event, and interactions won't get the event any more. This means that interactions are default behavior that can be prevented by application event handlers.
2012-09-27 09:54:16 +02:00
ahocevar 2991fa1178 Adding important comment 2012-09-26 22:39:21 +02:00
ahocevar d6f6b828f1 preventDefault on mousedown
This is needed to avoid native image dragging.
2012-09-26 18:48:57 +02:00
ahocevar 303960731c CSS for previous commit 2012-09-26 18:33:07 +02:00
ahocevar e390ff80ea Adding zoom control 2012-09-26 18:27:45 +02:00
ahocevar 47c343ce4f We can rely on the click event
No need to use the mousedown/touchstart event here, because the click event gives us both clientX/clientY and button on touch devices.
2012-09-26 18:27:12 +02:00
ahocevar 4257f5c7c6 Removing unneeded preventDefault calls 2012-09-26 18:26:11 +02:00
ahocevar c7a32b33da Fixing indentation 2012-09-26 15:11:47 +02:00
ahocevar 78c380c9a5 Type cast to make the compiler happy 2012-09-26 15:05:52 +02:00
ahocevar fa16adec02 Making more use of Closure 2012-09-26 14:38:29 +02:00
ahocevar bdd8a75123 Remove the box also if we don't zoom 2012-09-26 13:03:41 +02:00
ahocevar 3bd204fb6a DragBox control provides visual shiftdragzoom feedback
Adding a new DragBox control and using it in the shiftdragzoom interaction to provide visual feedback of the zoom box. The control is nicely separated from the interaction - it only draws the box and does not perform any action.
2012-09-26 12:50:14 +02:00
ahocevar 86336b42e6 Ignoring index.html instead of debug.html 2012-09-25 19:47:26 +02:00
ahocevar 36a8dd81ee Missing change from previous commit
This should have gone in with ef383ee7b6.
2012-09-25 19:35:12 +02:00
ahocevar 3c099a96b7 No longer tap-selecting elements on touch devices
This finalizes the effort to improve map browser event handling.
2012-09-25 19:32:08 +02:00
ahocevar ef383ee7b6 Examples using a script loader
This makes it possible to run examples hosted on hosts other than localhost. To get that version by default, debug.html has been renamed to index.html.
2012-09-25 19:06:29 +02:00
ahocevar 5a97655983 Optimizing touch device handling
The native event of the touchstart/mousedown event needs to be cloned; change includes some compiler optimizations.
2012-09-25 18:30:23 +02:00
ahocevar ce977e5364 Map browser event handling for touch devices
By handling click, dblckick and drag sequences in MapBrowserEvent, we can overcome closure issues with touch events. In particular, these issues were double drag events (from mousemove and touchmove) and a missing dblclick event on touch devices.
2012-09-25 17:28:01 +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
ahocevar 6b8e14c623 Don't trigger extra drag events on touch devices. 2012-09-25 08:30:57 +02:00
ahocevar 002e23cb74 Satisfy latest Closure library/tools. 2012-09-24 17:59:34 +02:00
ahocevar 78f8ed04dd Fixing typo. 2012-07-18 08:10:44 +02:00
ahocevar 6c9ef26c79 Using safe unicode notation. 2012-07-18 08:10:35 +02:00
ahocevar fd2ac782cf Using high level map event instead of browser event. 2012-07-13 17:54:34 +02:00
ahocevar 1c07c38a70 Using minus sign instead of ndash. 2012-07-13 17:53:33 +02:00
ahocevar f4532f1548 Completing tests for map handlers. 2012-07-12 23:48:13 +02:00
ahocevar ba986e536d We decided to be explicit about bubble/capture. 2012-07-12 23:47:37 +02:00
ahocevar 8183164298 The underlying event will be needed frequently.
But there will also be events that don't have an underlying event, so we make it optional.
2012-07-12 23:47:16 +02:00
ahocevar 3cc069186c Allow for using a different set of default behaviors.
The default behavior of dragging and wheel zooming feels specific to 2D maps. So I think it makes sense to introduce a special type of controls (ol.control.DefaultControl) that implement default behaviors. This change also re-introduces the Navigatin control, which is a container for the default behaviors that were previously defined in the map handlers. Maybe this control needs to be renamed to Navigatin2D in the future, and there could be a different Navigation control for 3D maps.
2012-07-12 20:51:47 +02:00
ahocevar 42c4c9d869 No need to pass the element to the constructor.
If MapHandler subclasses could live without a map, it would make sense to have a constructor with a target and an element. But because the target is always the map, and the handler need to know about the map for performing default behavior, we always assume the map's viewport as element.
2012-07-12 20:44:32 +02:00
ahocevar f672303f0a New MapHandler base class; better API docs 2012-07-12 15:21:15 +02:00
ahocevar 1ad915b428 Shuffling resources; better variable names; better type declarations. 2012-07-12 13:43:47 +02:00
ahocevar d76eea8ac4 Fixing tests. 2012-07-09 08:26:25 +02:00
ahocevar 7bf1ffe606 Nice improvement of the wheel zooming experience. 2012-07-08 20:27:10 +02:00
ahocevar 4132ded263 Merge branch 'events' 2012-07-08 12:19:32 +02:00
ahocevar ca2414c9d6 Simplify controls by registering click events on own elements.
This makes sense for all controls that provide buttons or similar UI elements that don't interfer with map interaction.
2012-07-08 12:17:11 +02:00
ahocevar a38a331085 Allow for events on other elements than the map viewport.
Not registering browser events as priority events makes it easy for controls to preventDefault or stopPropagation when events are registered on children of the map viewport element.
2012-07-08 12:14:26 +02:00
ahocevar e67e9049ca preventDefault and stopPropagation convenience functions.
These functions can directly be used as browser event listeners.
2012-07-08 12:12:19 +02:00
ahocevar e8ac3f1a6b preventDefault for mousemove and touchmove.
This avoids panning of the browser page when drag-panning the map.
2012-07-08 11:55:31 +02:00
ahocevar 578f74eb86 Less magic.
Each control is responsible for its handlers. And all controls are rendered into an overlay, not any more depending on assumptions about link click handling.
2012-06-29 09:44:52 +02:00
ahocevar f28fe4912f I think we decided to name events in a noun+verb fashion. 2012-06-26 13:34:34 +02:00
ahocevar 8541490f53 Be more explicit about object properties to get rid of warnings. 2012-06-26 09:56:50 +02:00
ahocevar b7c8486289 Testing Control.js. 2012-06-26 00:18:29 +02:00
ahocevar 56542de1f3 More Events.js tests. 2012-06-26 00:00:36 +02:00
ahocevar f962b78caa If no listeners are registered, triggerEvent does nothing now. 2012-06-25 06:32:10 +02:00
ahocevar 87459deb65 Removing unused variable. 2012-06-25 06:32:10 +02:00
ahocevar 9c46aadd22 Adding attribution control and attribution. 2012-06-24 22:22:18 +02:00
ahocevar dfc21754c9 Adding addLayers method and addlayer event. 2012-06-24 22:14:48 +02:00
ahocevar c218e7a139 Adding missing return type. 2012-06-24 22:12:58 +02:00
ahocevar 9758910fc6 Making Element/Node types more consistent. 2012-06-24 22:12:38 +02:00
ahocevar eabc2d9922 Shortcut to register events. 2012-06-24 20:03:58 +02:00
ahocevar 1b93856e89 Keep track of the number of events we have registered.
This is needed to reliably prevent the handleBrowserEvent method to perform potentially expensive calculations.
2012-06-24 20:03:16 +02:00
ahocevar d8599f28b9 Let the controls decide about stopPropagation and preventDefault. 2012-06-24 19:53:42 +02:00
ahocevar 68498bc36e Fixing the way we prevent the extra click. 2012-06-24 19:48:59 +02:00
ahocevar bd8354c831 Adding destroy method.
The control now removes its markup from the DOM. A nice aspect of our event handling is that no events need to be registered on any of the dom elements that controls create.
2012-06-24 17:08:32 +02:00
ahocevar 45222ac5cb Adding getStaticOverlay method.
This will be used by overlays, e.g. to display layer attribution.
2012-06-24 17:07:02 +02:00
ahocevar bc37121ae0 Accessibility - now we can use the keyboard to zoom in and out. 2012-06-24 13:45:32 +02:00
ahocevar 218ad77103 preventDefault now happens in Events.js for all handled events. 2012-06-24 13:43:53 +02:00
ahocevar fcadf842e5 stopPropagation and preventDefault when the event was handled. 2012-06-24 13:43:11 +02:00