Compare commits

..

461 Commits

Author SHA1 Message Date
Tom Payne
0edb8dc502 Merge pull request #23 from openlayers/remove-openlayers2
Remove OpenLayers 2, as discussed with @ahocevar, @elemoine and @tschaub
2012-08-30 13:22:47 -07:00
Tom Payne
903352989d Remove entries from .gitignore 2012-08-30 15:17:24 +02:00
Tom Payne
6c0b719aef Remove OpenLayers 2, as discussed with @ahocevar, @elemoine and @tschaub 2012-08-30 15:00:23 +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
Éric Lemoine
425b6c6652 Merge pull request #10 from elemoine/event
make ol.Map inherit from goog.events.EventTarget
2012-07-13 08:47:39 -07:00
Éric Lemoine
a365b0aaf3 improvements to the drag handler tests 2012-07-13 17:44:46 +02:00
Éric Lemoine
226480af90 fix mousewheel handler tests 2012-07-13 16:20:23 +02:00
Éric Lemoine
6fd5bb8647 fix drag handler tests 2012-07-13 16:20:07 +02:00
Éric Lemoine
1f62bd8cd6 fix typo in drag handler 2012-07-13 16:19:42 +02:00
Éric Lemoine
2b9df6442b Revert "Allow for using a different set of default behaviors."
This reverts commit 3cc069186c.
2012-07-13 15:38:06 +02:00
Éric Lemoine
f34aa03109 Revert "Replace the navigation control by two controls, namely DragPan and MouseWheelZoom. DragPan is the map default drag control. MouseWheelZoom is the map default mouse wheel control."
This reverts commit c2a30f4ac4.
2012-07-13 15:37:39 +02:00
Éric Lemoine
dd5182c55c remove trailing spaces in tests 2012-07-13 15:37:21 +02:00
Éric Lemoine
c2a30f4ac4 Replace the navigation control by two controls, namely DragPan and MouseWheelZoom. DragPan is the map default drag control. MouseWheelZoom is the map default mouse wheel control. 2012-07-13 08:57:40 +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
Éric Lemoine
8206f11372 be more explicit when calling goog.events.listen and unlisten 2012-07-12 08:20:42 +02:00
Éric Lemoine
dea307e53a typed objects for map events 2012-07-12 08:18:22 +02:00
Éric Lemoine
d4106f166d remove reference to ol.control.Navigation from ol.export.js 2012-07-12 08:17:23 +02:00
Éric Lemoine
8801542744 add code comments to click and mousewheel handlers 2012-07-12 08:14:21 +02:00
Éric Lemoine
d517bdc5cd use of goog.events.Event.stopPropagation instead of our own function 2012-07-12 07:35:14 +02:00
Éric Lemoine
a6b37ff83d remove reference to ol.control.Navigation in ol.js 2012-07-11 18:00:40 +02:00
Éric Lemoine
c6b8a93394 add goog.require for ol.handler.Click in ol.js 2012-07-11 17:52:21 +02:00
Éric Lemoine
8194f05ce4 better doc strings for the mousewheel handler 2012-07-11 17:49:13 +02:00
Éric Lemoine
62aee1d7ea remove unused function in the mousewheel handler 2012-07-11 17:48:48 +02:00
Éric Lemoine
d73531bf57 missing goog.require in the mousewheel handler 2012-07-11 17:47:16 +02:00
Éric Lemoine
3936c62e77 drag handler constructor should call its parent 2012-07-11 17:46:57 +02:00
Éric Lemoine
be0f73fb11 better doc strings for the drag handler 2012-07-11 17:46:25 +02:00
Éric Lemoine
d73410a9b3 add a click handler 2012-07-11 17:45:32 +02:00
Éric Lemoine
da11a8c34d add ol.ENABLE_DRAG_HANDLER and ol.ENABLE_MOUSEWHEEL_HANDLER @defines, and pass a an object to the handlers for sharing states 2012-07-11 17:43:42 +02:00
Éric Lemoine
38f946d944 remove the navigation control and the event target hierarchy 2012-07-11 17:38:18 +02:00
Éric Lemoine
ae5cdc75b4 the mousewheel handler zooms the map by default 2012-07-11 17:35:50 +02:00
Éric Lemoine
357d08df99 the drag handler moves the map by default 2012-07-11 08:31:38 +02:00
Éric Lemoine
82b5a59647 remove ol.event entirely 2012-07-09 21:34:47 +02:00
Éric Lemoine
e4ff1a7574 ol.Tile inherits from goog.events.EventTarget 2012-07-09 21:33:08 +02:00
Éric Lemoine
f9cb029a74 ol.control.Zoom no longer require ol.event 2012-07-09 21:32:10 +02:00
Éric Lemoine
77b809bead ol.control.Attribution no longer require ol.event 2012-07-09 21:31:56 +02:00
Éric Lemoine
a3387bc673 ol.Map requires ol.handler.MouseWheel 2012-07-09 21:11:13 +02:00
Éric Lemoine
04f87f8f73 ol.Map:destroy is back (api tests pass again) 2012-07-09 21:09:42 +02:00
Éric Lemoine
7c7cd08494 base tests for ol.handler.Drag and ol.handler.MouseWheel 2012-07-09 21:09:09 +02:00
Éric Lemoine
aebfb643ac better type checking 2012-07-09 20:51:28 +02:00
Éric Lemoine
127a2c9606 [ol.handler.Drag] receive mousemove/touchmove events when dragstart and dragend only 2012-07-09 20:50:59 +02:00
Éric Lemoine
32757f2cd5 Merge remote branch 'upstream/master' into event 2012-07-09 19:47:46 +02:00
Éric Lemoine
484d0f8d04 use goog.events.dispatchEvent 2012-07-09 09:33:53 +02:00
Éric Lemoine
1679a59835 reset the map DEFAULT_CONTROLS array 2012-07-09 09:33:32 +02:00
Éric Lemoine
406a2da466 do no export ol.Map.prototype.destroy, it is gone 2012-07-09 09:32:57 +02:00
Éric Lemoine
f2e0adc24f make the drag handler prevent page scrolling 2012-07-09 09:32:18 +02:00
Éric Lemoine
bc72e2e444 ol.control.Attribution no longer relies on map.getEvents 2012-07-09 09:31:33 +02:00
Éric Lemoine
e0b53360d2 ol.Popup no longer relies on map.getEvents 2012-07-09 09:30:34 +02:00
Éric Lemoine
9e693f29c5 use the mousewheel handler 2012-07-09 09:28:56 +02:00
Éric Lemoine
2c61e16b55 add a mouse wheel handler 2012-07-09 09:27:36 +02:00
Tim Schaub
1dd2512765 Specs for getting tile coords. 2012-07-09 01:15:56 -06:00
Tim Schaub
7f594364ca Pixels aligned top,left to origin. 2012-07-09 01:15:56 -06:00
Éric Lemoine
34a450a009 Merge branch 'master' into event
Conflicts:
	src/ol/Map.js
	src/ol/event/Drag.js
2012-07-09 08:57:55 +02:00
ahocevar
d76eea8ac4 Fixing tests. 2012-07-09 08:26:25 +02:00
Tim Schaub
5a485ea856 Getting explicit about pixels and size.
Eventually, well have to ask renderers for all pixel and size related stuff.  And the map overlay renderer will do all pixel<->loc math.  For now, we let the map do this math based on its viewport - as this is where the mouse events are handled and it is pixels relative to the viewport that are being generated.  For now, the getViewportPixelForLoc and getLocForViewportPixel are now more explicitly named.
2012-07-08 20:57:36 -06:00
Tim Schaub
3d130d3325 Letting the map ask renderer for resolution. 2012-07-08 20:56:36 -06:00
Tim Schaub
4dfb5d0dee Set center on reset. Only shift if offset. 2012-07-08 20:42:15 -06:00
Tim Schaub
b24d63a898 Spaces for tabs. 2012-07-08 19:34:53 -06:00
Tim Schaub
4911320eef Rework DOM composite renderer. 2012-07-08 18:37:23 -06:00
Tim Schaub
ceaba3cdd4 Overlays above the renderer. 2012-07-08 18:37:23 -06: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
Tim Schaub
bb7127c548 Merge branch 'renderer' 2012-07-07 17:17:59 -06:00
Tim Schaub
ddd57426b5 Allow renderer to have a buffer. 2012-07-07 16:50:22 -06:00
Tim Schaub
dc409ebcc4 Resize images in case they were previously scaled. 2012-07-07 15:42:08 -06:00
Tim Schaub
c0777cc003 Working with integer pixel space. 2012-07-07 15:19:49 -06:00
Tim Schaub
523f4d61fc Shift container for all layer renderers together. 2012-07-07 13:13:07 -06:00
tschaub
d435f6b4fd Simplifying the loader.
Plovr checks the referrer for query string parameters (like mode), so we don't need any of this query string parsing (thanks @elemoine for the tip).

The reason we still dynamically generate the script tag is to work on other domains (e.g. testing on a VM or mobile device).  In this case, we make use of the `window.location.hostname`.
2012-07-05 13:55:24 -06:00
Éric Lemoine
22e7dc67d6 add a @fileoverview to ol/handler/Drag.js 2012-07-05 14:02:13 +02:00
Éric Lemoine
2fcd76bd54 ol.handler.Drag no longer needs a disposeInternal method 2012-07-05 14:01:44 +02:00
Éric Lemoine
8e36850e7f create parent event target for the map, to allow stopping event propagation 2012-07-05 13:55:57 +02:00
Éric Lemoine
410d79faa1 rely on registerDisposable 2012-07-05 11:11:35 +02:00
Éric Lemoine
946cd33350 make ol.Map inherit from goog.EventTarget, and add an ol.handler.Drag 2012-07-05 11:11:35 +02:00
Tim Schaub
0650d93d17 Let the composite renderer manage containers. 2012-07-04 22:17:56 -06:00
Tim Schaub
d8e8e55b44 Generalizing query string parsing in the loader. 2012-07-04 20:53:03 -06: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
Marc Jansen
1d12c1b5d8 Better test description. 2012-06-25 23:23:42 +02:00
Marc Jansen
f477fd8ced Allow multi* geometries in Collections/collections. 2012-06-25 23:19:25 +02:00
Marc Jansen
29b684f916 Correct the formatPoint test to use API methods. 2012-06-25 23:03:01 +02:00
Marc Jansen
ca5b06f108 Add exports for multilinestring. 2012-06-25 23:02:35 +02:00
Marc Jansen
25202cae6d Add a LineStringLike typedef. 2012-06-25 22:46:11 +02:00
Marc Jansen
0a60d2dc82 Include test spec in api.html. 2012-06-25 22:45:17 +02:00
Marc Jansen
7eef78ed4c Add geom/multilinestring classes and tests. 2012-06-25 22:44:42 +02:00
Marc Jansen
f2577bbf12 Correct test for remove method. 2012-06-25 22:43:22 +02:00
Marc Jansen
6d84d4d3a1 Add geom/MultiLineString classes and tests. 2012-06-25 21:36:17 +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
Éric Lemoine
fbd4023d6a [ol.layer.TileLayer] better func comment 2012-06-24 22:30:48 +02:00
Éric Lemoine
192caa1c65 [ol.layer.TileLayer] do not load tiles outside the layer's extent 2012-06-24 22:25:01 +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
Marc Jansen
f7b75a8913 Merge pull request #3 from cedricmoullet/master
Semicolon missing
2012-06-24 05:43:20 -07: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
ahocevar
446a434c06 New isEnterOrSpace method for keyboard navigation. 2012-06-24 13:42:34 +02:00
ahocevar
7f01528311 Proper destruction. 2012-06-24 13:41:00 +02:00
ahocevar
2fbb29efa0 Using goog.object.clear in destroy. 2012-06-24 12:46:09 +02:00
ahocevar
53a1f9b579 Adding tests for Loc.add. 2012-06-24 12:02:45 +02:00
ahocevar
fdfccb7a82 Fixing type of maxResolution. 2012-06-24 11:40:18 +02:00
ahocevar
0c9b3d1d58 Making map_ protected instead of private. 2012-06-24 11:39:42 +02:00
Cédric Moullet
38db8178e2 semicolon missing 2012-06-24 11:26:23 +02:00
ahocevar
81577d6dce Adding Loc.add method. 2012-06-24 10:09:24 +02:00
Petr Pridal
587512cac8 Introduced "ol.API" @define which will allow in future to compile HPI apps with the OL. Discussed in ol3-sprint mailing-list. 2012-06-23 23:06:45 +02:00
Éric Lemoine
b615eb94b7 add a ol.layer.wms factory 2012-06-23 21:53:45 +02:00
Éric Lemoine
0b36e10f8f [ol.map] option name maxRes changed to maxResolution (discussed in cdd9439) 2012-06-23 21:27:39 +02:00
Éric Lemoine
c7e799ebf4 [ol.popup] make the API tests pass in advanced mode 2012-06-23 21:20:15 +02:00
Tim Schaub
08d6e35252 Accept an id param for the loader. 2012-06-23 20:00:28 +02:00
Tim Schaub
2fcbce30bc For now, we require a projection on loc internally. 2012-06-23 19:59:49 +02:00
ahocevar
12fb6c5af4 Merge branch 'master' of github.com:openlayers/ol3 2012-06-23 17:03:57 +02:00
ahocevar
bba7500ab7 Making Popup tests pass. 2012-06-23 17:00:58 +02:00
Tim Schaub
bcc85b9dd7 Must set a projection before setting center. 2012-06-23 16:55:16 +02:00
Tim Schaub
db2cbe07b7 Transforming coords before setting center.
The internal setCenter method can only be called with locations that have projections.  This method always transforms.
2012-06-23 16:42:51 +02:00
ahocevar
81b8a472d8 No longer need to calculate the anchor transformation. 2012-06-23 16:16:37 +02:00
ahocevar
026b60826e Removing stub method, and use the real method in Popup. 2012-06-23 16:16:37 +02:00
ahocevar
ad8568a259 New setCenterAndZoom and setZoom methods. 2012-06-23 16:16:37 +02:00
ahocevar
abf4f41eab Check for renderer before calling methods on it. 2012-06-23 16:16:37 +02:00
Tim Schaub
48704cce2f Make sure to set a projection on user center.
Only in the API do we allow setting the map center without a projection.  This is all handled in the center getter/setter.
2012-06-23 15:40:43 +02:00
Tim Schaub
167f77dd7e Updating example with build config. 2012-06-23 15:22:37 +02:00
Tim Schaub
df1dfd5295 Adding exports to get advanced compilation. 2012-06-23 15:22:37 +02:00
ahocevar
c656bac601 Making the pointer position the zoom origin. 2012-06-23 14:22:54 +02:00
ahocevar
d391c65ac6 New pixel conversion and zoom/center related methods. 2012-06-23 14:21:37 +02:00
ahocevar
6d7c79a9b9 Merge branch 'master' of github.com:openlayers/ol3 2012-06-23 14:18:25 +02:00
ahocevar
43adc61b26 No click event at the end of a drag sequence. 2012-06-23 14:18:02 +02:00
Tim Schaub
795f8b854d Adding instructions for build utilities. 2012-06-23 14:10:25 +02:00
Tim Schaub
a1fcb4e065 Build with an arbitrary configuration. 2012-06-23 13:55:06 +02:00
ahocevar
3adf04f728 Merge branch 'master' of github.com:openlayers/ol3 2012-06-23 13:41:35 +02:00
ahocevar
e03595fdac Priority flag for unregistering priority events. 2012-06-23 13:37:39 +02:00
Tim Schaub
2991041b3c Cleaning up a bit. 2012-06-23 13:23:10 +02:00
Tim Schaub
c4f91d498c Prep for more efficient moves. 2012-06-23 12:42:09 +02:00
ahocevar
cdd9439bbd Consistency: get/setMaxResolution instead of get/setMaxRes. 2012-06-23 09:10:01 +02:00
Tim Schaub
76d90428bd Pleasant zoom. 2012-06-23 03:32:27 +02:00
Tim Schaub
0554bceb29 Drag and zoom without throwing.
(This is a bit tedious, suggests a pending state.)
2012-06-23 02:17:14 +02:00
Tim Schaub
789eaa2742 Loaded typo. 2012-06-23 02:11:26 +02:00
Tim Schaub
ef0fd8da60 Pixels increase right and down. 2012-06-23 02:00:28 +02:00
Tim Schaub
b6cfeecdfb Adjust tiles if already rendered. 2012-06-23 01:59:20 +02:00
ahocevar
a6069bb78e Center tranformation in the api; moveByPx implemented. 2012-06-22 20:49:58 +02:00
Tim Schaub
5fa42e9b30 A map that zooms. 2012-06-22 20:46:34 +02:00
Éric Lemoine
0eaaefdf1d make the TileLayerRenderer tests pass 2012-06-22 20:43:13 +02:00
Éric Lemoine
f92e128636 [ol.layer.WMS] add a basic tiled WMS layer implementation 2012-06-22 20:39:56 +02:00
Tim Schaub
cfe3f14777 Stray console log. 2012-06-22 20:38:24 +02:00
Tim Schaub
787f2ba979 Common method for conditionally rendering. 2012-06-22 20:37:29 +02:00
Tim Schaub
b986395358 This is not doing what you think it is. 2012-06-22 20:25:26 +02:00
Tim Schaub
f46a7dbc2a Updated example. 2012-06-22 20:10:02 +02:00
Tim Schaub
bc0614d3ee Render last. 2012-06-22 20:08:44 +02:00
Tim Schaub
f86e6f17a9 Absolute position for tiles. 2012-06-22 20:08:44 +02:00
Tim Schaub
af73489bd5 Create a renderer and draw when possible. 2012-06-22 20:08:44 +02:00
ahocevar
c72f803038 Adding scroll sequence and scroll support for the Navigation control. 2012-06-22 19:51:35 +02:00
ahocevar
6b8000d963 Removing debug output. 2012-06-22 19:48:05 +02:00
Tim Schaub
7b41119bc9 Composite renderer creates layer renderers. 2012-06-22 19:46:40 +02:00
Tim Schaub
ff9bacf044 Temporary way for map renderers to register. 2012-06-22 19:46:40 +02:00
Tim Schaub
915f7b5330 Clean up old tiles. 2012-06-22 19:46:40 +02:00
Mike Adair
e7240062b3 adding some more tests 2012-06-22 13:05:18 -04:00
Éric Lemoine
5dc156995a [ol.layer.TileLayer] use ol.error 2012-06-22 18:46:52 +02:00
Éric Lemoine
a26913f26e [ol.layer.TileLayer] getTileUrl should be implemented in subclasses 2012-06-22 18:31:32 +02:00
ahocevar
f504fe87b8 Removing incorrect comments. 2012-06-22 18:27:06 +02:00
ahocevar
84ee96fbd0 Don't subclass fx.Dragger - just use it. 2012-06-22 18:27:06 +02:00
Marc Jansen
c54dda723a Remove debugg statement 2012-06-22 18:26:09 +02:00
Marc Jansen
be9448457d Test & improve the getCentroid/centroid method of collections 2012-06-22 18:24:53 +02:00
Marc Jansen
abb254a0fb Test the getCentroid/centroid Method of multipoints 2012-06-22 18:24:53 +02:00
Tim Schaub
2fffa0293d Test renderer type. 2012-06-22 17:48:44 +02:00
Tim Schaub
5b2d29878b Tile may be null. 2012-06-22 17:38:59 +02:00
Éric Lemoine
68fdab6824 [ol.layer.TileLayer] do not create tiles outside the layer extent 2012-06-22 17:30:35 +02:00
Tim Schaub
0c0eecebd9 Tile index based math (needs simplification). 2012-06-22 17:29:06 +02:00
Mike Adair
264cc741ca Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 11:26:25 -04:00
Mike Adair
d8b527776a fixing compiler warning 2012-06-22 11:26:09 -04:00
Marc Jansen
4dd3e695a4 Test the getCentroid/centroid Method of linestrings 2012-06-22 17:25:39 +02:00
Marc Jansen
bddb84ec14 Fix the the 'remove' exists test. 2012-06-22 17:25:39 +02:00
Marc Jansen
a235613238 dangling whitespace 2012-06-22 17:25:39 +02:00
ahocevar
6c1d510bf0 Getting rid of compiler warnings. 2012-06-22 17:17:25 +02:00
ahocevar
f12a20d7aa Stop the event chain when we have handled the event. 2012-06-22 17:14:46 +02:00
ahocevar
0420d2efb9 Adding Zoom control.
Tests still missing.
2012-06-22 17:14:22 +02:00
ahocevar
d9537b558a Simplified ISequence API; add object property also for browser events. 2012-06-22 17:12:29 +02:00
Éric Lemoine
22f569750f [ol.TileCache] tile cache size is not 1 2012-06-22 16:53:56 +02:00
Mike Adair
e748d39680 Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 10:53:17 -04:00
Mike Adair
2163d54323 adds autosizing and image loading listener 2012-06-22 10:52:58 -04:00
Éric Lemoine
c501559413 Revert "[ol.TileCache] tile cache size is not 1"
This reverts commit 3f9fd2f47a.
2012-06-22 16:51:28 +02:00
Éric Lemoine
3f9fd2f47a [ol.TileCache] tile cache size is not 1 2012-06-22 16:48:48 +02:00
Marc Jansen
b664847591 Add export symbols. 2012-06-22 16:26:19 +02:00
Marc Jansen
396875c719 A centroid method for LineStrings 2012-06-22 16:26:19 +02:00
Marc Jansen
483c431e1b A centroid method vor Collections 2012-06-22 16:26:19 +02:00
Marc Jansen
73e07df544 Give geometrues a centroid method. 2012-06-22 16:26:19 +02:00
Marc Jansen
e23b119059 Whitespace changes only. 2012-06-22 16:26:19 +02:00
Marc Jansen
09d7f15fb2 Give points a getCentroid/centroid method. 2012-06-22 16:26:19 +02:00
Marc Jansen
1456e234e2 Whitespace changes only. 2012-06-22 16:26:19 +02:00
Marc Jansen
5a3dad9326 Add a basic geometry interface 2012-06-22 16:26:19 +02:00
Tim Schaub
db3a6e9c4a Get closest resolution. 2012-06-22 16:14:33 +02:00
ahocevar
65ae7eb7a7 Adding 'object' property to event object. 2012-06-22 15:58:58 +02:00
Éric Lemoine
e5c3dcfe09 [ol.layer.TileLayer] fix maxResolution calculation 2012-06-22 15:43:18 +02:00
Éric Lemoine
1df7c048b8 [ol.layer.TileLayer] tileOriginCorner is tl by default 2012-06-22 15:43:18 +02:00
Tim Schaub
ef06bee222 Allowing people to set up things backwards. 2012-06-22 15:42:56 +02:00
Éric Lemoine
71a804c5e0 [ol.layer.TileLayer] add a getTileForXYZ func 2012-06-22 15:16:58 +02:00
Petr Pridal
976239816e Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-22 14:53:53 +02:00
Petr Pridal
6cfb942ff9 Fix the calls of .transform in internal code. It should be .doTransform. 2012-06-22 14:53:12 +02:00
Petr Pridal
6f9f1783bd The demo of compilation with library in a different ways. 2012-06-22 14:48:49 +02:00
Mike Adair
675dd2b47e Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 08:14:42 -04:00
Mike Adair
2396c95b2d Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 08:14:13 -04:00
ahocevar
494305d725 Simplified the ISequence interface and sequence event handling. 2012-06-22 14:14:10 +02:00
Mike Adair
368bb28671 initial version of popups 2012-06-22 08:13:34 -04:00
Marc Jansen
07021d367b Handmade exports for multipoints. 2012-06-22 14:13:14 +02:00
Marc Jansen
dc686c3d07 Handmade exports for linestrings. 2012-06-22 14:13:14 +02:00
Mike Adair
a8642e9af5 Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 08:12:25 -04:00
Mike Adair
5e3b18ae84 Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 08:09:59 -04:00
Éric Lemoine
01668a2748 [ol.layer.TileLayer] add a getTileSize function 2012-06-22 14:09:57 +02:00
Éric Lemoine
cf3da75d83 fix layer.osm and layer.xyz api tests in adv mode 2012-06-22 14:04:44 +02:00
Éric Lemoine
e78b990f52 fix ol.geom.geometry api tests 2012-06-22 13:57:43 +02:00
Petr Pridal
8d36dfe475 Handmade exports: Require only for the 'ol', added map.renderTo and remoced map.maxRes. 2012-06-22 13:54:40 +02:00
Tom Payne
2e46765c77 Fix another typo 2012-06-22 13:43:51 +02:00
Tom Payne
fb686c9db4 Fix typo 2012-06-22 13:42:57 +02:00
Petr Pridal
f31486a982 The dynamic registration of controls - hack for the advanced mode compilation. 2012-06-22 13:13:22 +02:00
Tim Schaub
4e2ea47e73 Decode what we encode. 2012-06-22 13:12:47 +02:00
Marc Jansen
11aedf710b Test restructuring. No functional change. 2012-06-22 13:07:52 +02:00
Petr Pridal
965a5a13b2 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-22 12:55:32 +02:00
Petr Pridal
c0dc9facf0 Let's use the handmade src/os.export.js instead of the automated generation from the @export jsdoc for testing. 2012-06-22 12:53:47 +02:00
Mike Adair
fdfeaa3c44 Merge branch 'master' of github.com:openlayers/ol3 2012-06-22 06:52:22 -04:00
Éric Lemoine
2e7d361f1e make the feature api tests pass in advanced mode 2012-06-22 12:50:06 +02:00
Petr Pridal
a5e9757234 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-22 12:42:03 +02:00
Petr Pridal
53f8727062 Anonymous wrapper function around the api.js compiled in advanced compilation. 2012-06-22 12:40:42 +02:00
Marc Jansen
f143f32a6f Use ol.error instead of throwing directly. 2012-06-22 12:37:10 +02:00
Éric Lemoine
2d50a35850 the API user does not know about UnreferencedBounds, and remove getResForZoom and getMaxRes from the map API 2012-06-22 12:34:15 +02:00
Éric Lemoine
1d114b4630 two test pages, one for api, one for ol 2012-06-22 12:17:57 +02:00
Marc Jansen
f6a728b074 Do not loose URL-parameters passed to jasmine. 2012-06-22 12:14:35 +02:00
Tom Payne
3e15ce93bb Use ol.base.checkKeys to check keys 2012-06-22 11:58:03 +02:00
Tom Payne
afd6369da7 Add ol.base.checkKeys 2012-06-22 11:56:45 +02:00
Tom Payne
fd4c776181 Create new ol.base and include ol.error 2012-06-22 11:56:45 +02:00
Éric Lemoine
a0e5741774 [ol.layer.TileLayer, ol.layer.XYZ] add a getMaxResolution func to TileLayer, and make ol.layer.XYZ be just a projection and a number of zoom levels 2012-06-22 11:52:40 +02:00
Mike Adair
89b3019cde return correct map overlay elem 2012-06-22 05:50:14 -04:00
Petr Pridal
1fcdffacc1 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-22 11:45:50 +02:00
Petr Pridal
fa9507ab79 Removing Makefile. Use 'bin/ol' for starting plovr. 2012-06-22 11:45:01 +02:00
ahocevar
deb84cf212 Removing unused code. 2012-06-22 11:42:17 +02:00
ahocevar
fbcca9642c Use renderTo instead of el as method/option name. 2012-06-22 11:17:27 +02:00
Éric Lemoine
86a3eaad19 [ol.layer.TileLayer] move getData from layer.XYZ to layer.TileLayer 2012-06-22 11:09:08 +02:00
Tom Payne
0b06267afe Trigger redraws on tile loads. 2012-06-22 11:02:44 +02:00
Éric Lemoine
cb37aaa01b map.test.js - fix the map is destroyable test in advanced mode 2012-06-22 10:59:57 +02:00
Éric Lemoine
ad2c3e15e3 [ol.Tile] as an isLoading method 2012-06-22 10:51:59 +02:00
Petr Pridal
f25b3aa350 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-22 10:48:58 +02:00
Petr Pridal
5439d63e89 Hello world for various modes of compilation. 2012-06-22 10:44:34 +02:00
Éric Lemoine
0cf1a830d9 [ol.layer.XYZ] no need to call setResolutions 2012-06-22 10:41:06 +02:00
Éric Lemoine
7c36d2f42f [ol.layer.XYZ] does not require ol.Tile 2012-06-22 10:40:25 +02:00
Éric Lemoine
9d21d6f20f [ol.TileLayer] no setTileSize method anymore 2012-06-22 10:39:53 +02:00
Éric Lemoine
f7a956f404 [ol.Tile] add ol.Tile.createConstructor and set width and height to the img archetype 2012-06-22 10:38:40 +02:00
Marc Jansen
67ce7afe67 Export the Collection constructor. 2012-06-22 09:45:05 +02:00
Marc Jansen
bed71db109 Export the LineString constructor. 2012-06-22 09:44:21 +02:00
Marc Jansen
9a533aeb7d Export the MultiPoint constructor. 2012-06-22 09:41:37 +02:00
Marc Jansen
3a40925a7d API point fixed (using ADVANCED compilation) 2012-06-22 09:36:58 +02:00
Marc Jansen
45917504b0 Fix the geom tests to only use API methods. 2012-06-22 09:18:12 +02:00
Petr Pridal
8ace8aee78 Added missing goog.require() 2012-06-22 01:43:09 +02:00
Petr Pridal
e10a845058 Advanced compilation of the API with 'bin/ol api' 2012-06-22 01:32:29 +02:00
Éric Lemoine
9529db0151 throw an error if ol.map gets passed an unknown option 2012-06-21 20:16:11 +02:00
Éric Lemoine
7e8c418155 fix ol.error 2012-06-21 20:16:11 +02:00
Tim Schaub
c67ca2660d Partial tile layer renderer. 2012-06-21 19:59:43 +02:00
Tim Schaub
948e792ddd Bounds transforms. 2012-06-21 19:59:43 +02:00
Tim Schaub
6198df9381 Location transform in api. 2012-06-21 19:59:43 +02:00
Tim Schaub
ba7b54949c Bounds spec. 2012-06-21 19:59:43 +02:00
Tom Payne
7f7528baf9 Add GeoJSON externs. 2012-06-21 19:47:12 +02:00
ahocevar
4776b11658 Now the map also has overlay divs. 2012-06-21 19:40:04 +02:00
Éric Lemoine
5388657791 [ol.Tile] a tile can be loaded only once 2012-06-21 19:37:16 +02:00
ahocevar
ed62cc00a7 Fixing typos. 2012-06-21 19:36:11 +02:00
ahocevar
188615391d Using a map for controls also. 2012-06-21 19:33:33 +02:00
ahocevar
9bd507e9b8 Adding a map of sequence providers 2012-06-21 19:27:18 +02:00
Éric Lemoine
6c76f4621e [ol.Tile] add a isLoaded function 2012-06-21 19:10:28 +02:00
Tom Payne
79f5339573 Add simple ol.error function 2012-06-21 19:01:27 +02:00
Éric Lemoine
98495cafc3 [ol.Tile] an image is a HTMLImageElement 2012-06-21 19:00:09 +02:00
Éric Lemoine
1c7e0f8481 add an ol.TileCache and use it in ol.TileLayer 2012-06-21 19:00:09 +02:00
ahocevar
a06de64f37 Minimal demo. 2012-06-21 18:57:07 +02:00
ahocevar
e9e5fd27dc The map now has a viewport and can render to a container. 2012-06-21 18:56:48 +02:00
Marc Jansen
8f90db58dc MultiPoints shall only contain points. 2012-06-21 18:23:37 +02:00
Marc Jansen
340caf2720 Collections cannot contain Collections.
By having both the constructor and the setComponents checking
a white- and a blacklist for allowed types, we ensure that no
Collections can be added through these methods to the list of
components.
2012-06-21 18:23:37 +02:00
ahocevar
8d8819ec3c Removing unused file and code. 2012-06-21 17:30:23 +02:00
Tim Schaub
7c17374231 Bounds has projection or null. 2012-06-21 17:28:47 +02:00
ahocevar
81a55eb320 Finally fixing event sequences. 2012-06-21 17:26:23 +02:00
Tim Schaub
0a1f8cddd8 Intersects method for bounds. 2012-06-21 17:12:05 +02:00
Petr Pridal
08ad8c80d6 Rename MapRenderer attribut 'target' to 'container' to follow the new conventions. 2012-06-21 17:01:21 +02:00
Tom Payne
8448aba616 Add initial WebGL renderer skeleton 2012-06-21 16:39:47 +02:00
Éric Lemoine
435557b425 [ol.Tile] trigger load and error events 2012-06-21 16:10:52 +02:00
Éric Lemoine
79b0bb74c8 [ol.Tile] add comments for handleImageLoad and handleImageError 2012-06-21 16:10:51 +02:00
Éric Lemoine
e72ab5135c [ol.Tile] register to image error 2012-06-21 16:10:51 +02:00
Éric Lemoine
1dc6b04ac1 [ol.Tile] register to image load 2012-06-21 16:10:51 +02:00
Marc Jansen
ce49bb8876 Add LineString/linestring.
The inhertance of this class might change in the future.
2012-06-21 16:00:08 +02:00
Marc Jansen
745ae25b6b Change the inhertance of MultiPoint/multipoint. 2012-06-21 16:00:08 +02:00
Marc Jansen
0374d1abc7 Add geom.Collection & geom.collection.
Also make MultiPoint and multipoint inherit from Collection/collection
respectively.
2012-06-21 16:00:08 +02:00
Petr Pridal
6ca9112af2 WebGL MapRenderer inicializaiton with a test (it may fail on computers without WebGL). 2012-06-21 15:51:00 +02:00
Éric Lemoine
1cca6b4069 add numZoomLevels and maxResolution properties to the TileLayer 2012-06-21 14:18:52 +02:00
ahocevar
5b747cf7fd Temporarily removing Drag sequence. 2012-06-21 14:14:36 +02:00
ahocevar
6213e07f96 Navigation control with Drag sequence Dragger
This is totally unfinished, but tests pass, and it is only meant to give the map a Navigation control.
2012-06-21 14:08:50 +02:00
Petr Pridal
8fc1e9cc98 More complete constructor of the WebGL MapRenderer. 2012-06-21 13:53:10 +02:00
Tim Schaub
2741a22cf1 Add animate to draw. 2012-06-21 13:31:23 +02:00
Tim Schaub
a6f464e473 New name for element.
You are provided a container.  To this container you can append elements, and you are responsible for removing elements that you add.  You cannot move or otherwise alter anything about this container.
2012-06-21 13:28:29 +02:00
Éric Lemoine
5f1e53a0c9 move properties from layer/XYZ to layer/TileLayer 2012-06-21 12:42:36 +02:00
Tim Schaub
5da8fc8d49 Allow map renderers access to target. 2012-06-21 12:26:51 +02:00
Petr Pridal
56456ec878 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-21 12:24:26 +02:00
Petr Pridal
638d00b759 First css styles in /css/ol.css 2012-06-21 12:23:37 +02:00
Tim Schaub
661f07d80a Only check src for js. 2012-06-21 12:23:14 +02:00
Marc Jansen
f85d6402e9 Add MultiPoint and multipoint. 2012-06-21 12:19:42 +02:00
Petr Pridal
cff7ee5db8 WebGL MapRender - initial not finished version. 2012-06-21 12:02:21 +02:00
Tim Schaub
45f734d77e Base for map renderer. 2012-06-21 11:40:51 +02:00
Tim Schaub
9cc501caba Composite renderer requires an element. 2012-06-21 11:30:53 +02:00
Mike Adair
f3ab95b051 change feature obj literal property names to match GeoJSON 2012-06-21 03:31:57 -04:00
Éric Lemoine
22bffd9d8b add an OSM layer constructor to the API 2012-06-21 08:46:23 +02:00
Éric Lemoine
b91769f00b [ol.layer.XYZ] less than 8 chars lines 2012-06-21 08:38:38 +02:00
Tim Schaub
43c8b89460 Initial pass at tiled layer renderer. 2012-06-21 01:18:57 +02:00
Tim Schaub
fe0e242a39 Initial composite map renderer. 2012-06-21 01:17:34 +02:00
Tim Schaub
ae242de94a Ignoring jsdoc output. 2012-06-21 01:16:37 +02:00
Tim Schaub
4baf760b7e Layer for demo. 2012-06-21 01:15:54 +02:00
Tim Schaub
be54add905 Width and height on unreferenced bounds. 2012-06-21 00:50:26 +02:00
Tim Schaub
5287677489 Additional tileset getters. 2012-06-21 00:42:28 +02:00
Tim Schaub
d8b31ab1ff Class name on archetype image. 2012-06-21 00:33:31 +02:00
Tim Schaub
57764813e3 Constructing tiles with bounds. 2012-06-20 23:38:15 +02:00
Tim Schaub
f9813616e5 Giving a tile bounds. 2012-06-20 23:38:15 +02:00
Tim Schaub
c9c1f79928 Layer hierarchy for renderers. 2012-06-20 23:38:14 +02:00
ahocevar
5a31638da8 Updating name. 2012-06-20 23:21:58 +02:00
ahocevar
6ddda53a70 Initial port of Control.js and Navigation.js.
This also adds an Events instance to the map, so the Navigation control can register events on the map.

Tests still missing.
2012-06-20 23:21:44 +02:00
Mike Adair
4ea2fe3701 adding features 2012-06-20 13:33:20 -04:00
Tom Payne
d5f9f9e8a4 Use inheritance. 2012-06-20 19:17:59 +02:00
ahocevar
a36972fd35 Exporting the API. 2012-06-20 19:07:11 +02:00
ahocevar
74d1a06177 No need for cross browser handling here. 2012-06-20 19:07:11 +02:00
Tim Schaub
a4a6bc4db4 Typo in PointLike def. 2012-06-20 18:49:40 +02:00
Petr Pridal
6f4975883f Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 18:43:49 +02:00
Petr Pridal
1c25a53876 Allow ?mode=ADVANCED on the test/index.html and make the output easier to debug. 2012-06-20 18:42:56 +02:00
Tim Schaub
32d5397301 Dot notation for unquoted property. 2012-06-20 18:42:43 +02:00
Petr Pridal
453d2e9c08 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 18:38:34 +02:00
Petr Pridal
5ed80bcf6c Adding @export tags to functions missing it - for advanced compilation. 2012-06-20 18:37:56 +02:00
ahocevar
c4c595862f Support for event sequences, and a drag sequence.
Tests still missing.
2012-06-20 18:35:42 +02:00
ahocevar
05e13e86a3 Adding drag sequence. Tests still missing. 2012-06-20 18:32:27 +02:00
Éric Lemoine
7413770a46 add an ol.layer.xyz factory 2012-06-20 18:09:10 +02:00
Marc Jansen
958e291545 Quoting properties for external use.
See also 1ac40021bb.
2012-06-20 17:57:27 +02:00
Petr Pridal
e3b20ddf8b Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 17:47:28 +02:00
Petr Pridal
6922be1b02 Missing @export tags for advanced compilation 2012-06-20 17:46:36 +02:00
Marc Jansen
a9d280a317 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 17:45:00 +02:00
Marc Jansen
94fe46c5be Remove stray ')' 2012-06-20 17:43:54 +02:00
Tim Schaub
1ac40021bb Quoting properties for external use. 2012-06-20 17:43:46 +02:00
Éric Lemoine
025547d199 [ol.Layer.XYZ] minor changes in code comments 2012-06-20 17:43:24 +02:00
Marc Jansen
eb690951ab Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 16:52:33 +02:00
Marc Jansen
b49c036ae2 Make the testuite configurable via URL. 2012-06-20 16:49:51 +02:00
Éric Lemoine
7bf05964b8 [ol.layer.XYZ] more tiling fixes, and additional tests 2012-06-20 16:18:01 +02:00
Tim Schaub
5eeb21c125 Disallow nowhere. 2012-06-20 16:11:41 +02:00
ahocevar
f74d265dec Verified isSingleTouch and isMultiTouch functions. 2012-06-20 16:02:41 +02:00
ahocevar
66a5a8ad7a countFn not needed - do everything with logFn. 2012-06-20 15:53:01 +02:00
ahocevar
8c4b528ded Better cleanup. 2012-06-20 15:52:24 +02:00
ahocevar
80f76a91e1 Always provide a proper event object. 2012-06-20 15:52:08 +02:00
ahocevar
733f1478dc Merge branch 'master' of github.com:openlayers/ol3 2012-06-20 15:50:56 +02:00
Éric Lemoine
d4ebe97ab1 [test/index.html] remove the mode=RAW script tag again, it does not work anymore 2012-06-20 15:50:31 +02:00
Marc Jansen
edc2773147 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 15:42:43 +02:00
Marc Jansen
6b8cd1216f Easier getter/setter for geom.point. 2012-06-20 15:42:10 +02:00
ahocevar
2fa71057b1 Finalizing tests for ol.Events 2012-06-20 15:26:02 +02:00
Éric Lemoine
2890a55ee7 [ol.layer.XYZ] a tiling fix 2012-06-20 15:13:22 +02:00
Éric Lemoine
e989c61e63 make the tests run in Closure RAW mode, but leave the SIMPLE mode script tag to still catch compilation errors/warnings while running tests 2012-06-20 15:11:20 +02:00
Mike Adair
e61769c6dc put back to SIMPLE mode 2012-06-20 09:04:51 -04:00
Mike Adair
45c03c29ba Merge branch 'master' of github.com:openlayers/ol3 2012-06-20 09:02:51 -04:00
Mike Adair
aa584e17e9 center returned in user projection 2012-06-20 09:02:20 -04:00
Marc Jansen
0ccbb8e6d0 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 14:59:18 +02:00
Marc Jansen
d933404df8 Make Points transformable. 2012-06-20 14:58:37 +02:00
Tim Schaub
09a6b6c456 Changing expectations for projection. 2012-06-20 14:52:29 +02:00
Mike Adair
a6b93773cd Merge branch 'master' of github.com:openlayers/ol3 2012-06-20 08:42:11 -04:00
Mike Adair
00e25d3a62 fix warnings 2012-06-20 08:41:47 -04:00
Mike Adair
99b397bffc implement getMaxRes, getMaxExtent, getResForZoom 2012-06-20 08:29:43 -04:00
Marc Jansen
33c2e0aa30 Correct the tests for geom.Point and geom.point.
Add tests for the API version `ol.point()`; adjust the tests for the internal
`new ol.Point()`.
2012-06-20 13:36:07 +02:00
Marc Jansen
cdcf3ef5a4 remove the coordinate mixin. 2012-06-20 12:06:55 +02:00
Éric Lemoine
a4a90b18b7 [ol.layer.XYZ] zoomForResolution is no longer private 2012-06-20 12:04:07 +02:00
Tim Schaub
14b1a34f98 Splitting tests between api and internal. 2012-06-20 11:56:20 +02:00
Éric Lemoine
a7a86bb169 add a Jasmine toBeA matcher 2012-06-20 11:44:43 +02:00
Petr Pridal
02840ad573 Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 11:40:25 +02:00
Petr Pridal
638a3b104e Turn on WARNING for compilation on visibility and other compiler options. 2012-06-20 11:39:28 +02:00
Petr Pridal
e0d444551c Fixing visibility (@private/@protected) annotationto introduce compiler warnings for that. 2012-06-20 11:35:58 +02:00
Marc Jansen
ac2a0bbccd Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 11:30:43 +02:00
Marc Jansen
85f0f43b7b Saving state prior to spec moving. 2012-06-20 11:30:06 +02:00
ahocevar
b63e13d09c More Events tests. 2012-06-20 11:29:07 +02:00
ahocevar
4854eee97c Getting rid of debugger statement. 2012-06-20 11:26:33 +02:00
ahocevar
25d4ef17fd Fixing types and getting rid of evt.touches warning. 2012-06-20 11:23:48 +02:00
Éric Lemoine
e995ffea89 more "setters should not return this" changes + warning fixes 2012-06-20 11:21:29 +02:00
Éric Lemoine
27305925ff run fromdos on ol/Map.js 2012-06-20 11:21:29 +02:00
Éric Lemoine
487e61884e EPI setters no longer return this 2012-06-20 11:21:29 +02:00
Marc Jansen
41df32df9a Merge branch 'master' of https://github.com/openlayers/ol3 2012-06-20 11:19:48 +02:00
Marc Jansen
aec8f953e5 Remove the mixin approach and give the Point class a projection. 2012-06-20 11:18:07 +02:00
Marc Jansen
073c636cb2 Removed interfaces package and introduced coord package. 2012-06-20 11:17:13 +02:00
Mike Adair
c657bdeeb6 remove debugger line 2012-06-20 05:00:48 -04:00
Mike Adair
a9a2e7cf8f remove debugger line 2012-06-20 04:58:30 -04:00
Mike Adair
4161595c85 extent and res tests 2012-06-20 04:37:16 -04:00
Mike Adair
2c7e308960 adding getMaxExtent and getMaxRes 2012-06-20 04:37:14 -04:00
Éric Lemoine
4fcc00e39c move ol.Projection code and units methods to the api dir 2012-06-20 10:28:54 +02:00
ahocevar
dfc35282ff Fixing API docs 2012-06-20 09:59:19 +02:00
Éric Lemoine
a96b559ddd very first XYZ layer bits 2012-06-20 09:18:46 +02:00
Éric Lemoine
5f557e6c6c the TileSet constructor takes 4 args 2012-06-20 09:17:55 +02:00
Éric Lemoine
8d74113897 the Tile constructor now takes a url as the first arg 2012-06-20 09:17:55 +02:00
Éric Lemoine
84d594cacb Tile.test.js - remove test that sets a src on the image 2012-06-20 09:17:55 +02:00
ahocevar
fb8b1e878d Events.js ported, with tests stub. More tests to be added. 2012-06-20 01:09:21 +02:00
Tim Schaub
54b8ebacaf OS neutral dev tools. 2012-06-20 00:41:28 +02:00
Tim Schaub
b06a52888f Adding unreferenced bounds. 2012-06-20 00:11:06 +02:00
Marc Jansen
450f8f7b74 First state of a geom package. 2012-06-19 18:21:21 +02:00
Tim Schaub
712070c1f0 Location tests passing. 2012-06-19 18:06:00 +02:00
Tim Schaub
408413ec92 Projection cannot be null. 2012-06-19 17:41:17 +02:00
Mike Adair
6ed79a3d36 add layers and resolutions array 2012-06-19 11:17:55 -04:00
Mike Adair
28955dc0b1 Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 10:18:21 -04:00
Mike Adair
b0490ecdb6 initial set of tests running 2012-06-19 10:17:41 -04:00
Petr Pridal
8dde795baa Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 16:13:39 +02:00
Petr Pridal
fd14df352b JSDoc documentation generator with plovr by "make jsdoc" 2012-06-19 16:13:00 +02:00
Tim Schaub
d69d56aab2 Avoiding warnings. 2012-06-19 15:54:13 +02:00
Tim Schaub
6f3b47709a No projection warnings. 2012-06-19 15:43:50 +02:00
Mike Adair
efcecc4c5f map initialization 2012-06-19 09:37:42 -04:00
Tim Schaub
4588d794d8 Keep compiling. 2012-06-19 15:23:36 +02:00
Mike Adair
b25339549a Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 09:21:48 -04:00
Éric Lemoine
1c8abd38a6 add a basic TileSet class 2012-06-19 15:18:34 +02:00
Mike Adair
171c8522b3 intialization of Map again 2012-06-19 09:16:56 -04:00
Mike Adair
322cf702ed Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 09:04:25 -04:00
Mike Adair
d990be61af Merge branch 'three' of https://github.com/tschaub/openlayers into three
Conflicts:
	src/api/loc.js
	src/api/map.js
	src/ol/Map.js
2012-06-19 09:04:04 -04:00
Éric Lemoine
79af86bde5 minor doc string additions to ol.Tile 2012-06-19 15:01:57 +02:00
Éric Lemoine
ce20ba066c add an ol.Tile class 2012-06-19 14:52:25 +02:00
Tim Schaub
1043a53fe1 Use simple compilation. 2012-06-19 14:49:56 +02:00
Mike Adair
82f204f30c map get/set methods 2012-06-19 08:06:08 -04:00
Tom Payne
116c26422e Loc fixes. 2012-06-19 13:09:31 +02:00
Tom Payne
7358529c4e Map fixes. 2012-06-19 13:09:31 +02:00
Tom Payne
f435bb1874 Bounds fixes. 2012-06-19 13:00:24 +02:00
Mike Adair
818ca7016a interim map test updates 2012-06-19 06:53:59 -04:00
Tom Payne
94e6146b8a Remove dead code. 2012-06-19 12:44:06 +02:00
Tom Payne
7958e02bd0 Add map user projection getter and setter. 2012-06-19 12:43:54 +02:00
Tom Payne
ef83910c3d Make more Loc tests pass. 2012-06-19 12:33:59 +02:00
Tom Payne
95fe8762da Rename Location to Loc for consistency. 2012-06-19 12:01:22 +02:00
Tom Payne
da7449454e Pass bounds spec. 2012-06-19 11:56:48 +02:00
Tim Schaub
77c07a500e A passing test. 2012-06-19 11:14:53 +02:00
Marc Jansen
b1e26fab1d change indentation. 2012-06-19 10:56:01 +02:00
Marc Jansen
a6fa08550f change indentation. 2012-06-19 10:51:16 +02:00
Marc Jansen
c04ae35498 change indentation. 2012-06-19 10:49:44 +02:00
Tim Schaub
90f33c587a Debugged. 2012-06-19 10:39:42 +02:00
Tim Schaub
738561e417 Exporting the map. 2012-06-19 10:29:03 +02:00
Tim Schaub
8572ae35cf Phony task 2012-06-19 10:28:51 +02:00
Tim Schaub
01e22e098c Ignoring plovr. 2012-06-19 09:47:27 +02:00
Tim Schaub
56c6d69999 File shuffle. 2012-06-19 09:46:19 +02:00
Tim Schaub
bd6b52c2cd File shuffle. 2012-06-19 09:45:08 +02:00
Tim Schaub
f24b518f61 Small fixes. 2012-06-19 09:43:20 +02:00
Tim Schaub
e84a0473d5 Removing additional main.json. 2012-06-19 09:25:25 +02:00
Petr Pridal
0a354d3923 Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 09:21:30 +02:00
Tom Payne
d4a9b9859c Fix setters. 2012-06-19 09:21:04 +02:00
Petr Pridal
7e8c41b2ab Merge branch 'three' of https://github.com/tschaub/openlayers into three 2012-06-19 09:20:51 +02:00
Petr Pridal
7109bd3868 Plovr demo 2012-06-19 09:19:59 +02:00
Tom Payne
986f152e61 Remove broken code. 2012-06-19 09:18:56 +02:00
Tom Payne
613b90c7f3 Add broken code for testing. 2012-06-18 18:40:00 +02:00
Tim Schaub
b9d690044f Adding test spec. 2012-06-18 18:15:51 +02:00
1301 changed files with 16092 additions and 233442 deletions

8
.gitignore vendored
View File

@@ -1,7 +1 @@
/build/OpenLayers.js
/tools/closure-compiler.jar
/tools/*.pyc
/apidoc_config/Data/
/doc/apidocs/
/examples/example-list.js
/examples/example-list.xml
/bin/plovr.jar

49
api.json Normal file
View File

@@ -0,0 +1,49 @@
{
"id": "api",
"output-file": "api.js",
"output-wrapper": [
"// Copyright 2012 ...\n",
"(function(){%output%})();"
],
"inputs": "src/ol.export.js",
"paths": [
"src"
],
"define": {
// "goog.dom.ASSUME_STANDARDS_MODE": true,
// "goog.userAgent.ASSUME_MOBILE_WEBKIT": true,
"goog.DEBUG": false,
"ol.API" : true
},
"mode": "ADVANCED",
"level": "VERBOSE",
// "pretty-print": true,
// "debug": true,
// "experimental-compiler-options": {
// "generateExports": true
// },
"checks": {
// acceptable values are "ERROR", "WARNING", and "OFF"
"accessControls": "WARNING",
"visibility": "WARNING",
"checkTypes": "WARNING",
"checkRegExp": "WARNING",
"checkVars": "WARNING",
"deprecated": "WARNING",
"fileoverviewTags": "WARNING",
"invalidCasts": "WARNING",
"missingProperties": "WARNING",
"nonStandardJsDocs": "WARNING",
"undefinedVars": "WARNING"
},
"jsdoc-html-output-path": "jsdoc"
}

View File

@@ -1,113 +0,0 @@
Format: 1.52
# This is the Natural Docs languages file for this project. If you change
# anything here, it will apply to THIS PROJECT ONLY. If you'd like to change
# something for all your projects, edit the Languages.txt in Natural Docs'
# Config directory instead.
# You can prevent certain file extensions from being scanned like this:
# Ignore Extensions: [extension] [extension] ...
#-------------------------------------------------------------------------------
# SYNTAX:
#
# Unlike other Natural Docs configuration files, in this file all comments
# MUST be alone on a line. Some languages deal with the # character, so you
# cannot put comments on the same line as content.
#
# Also, all lists are separated with spaces, not commas, again because some
# languages may need to use them.
#
# Language: [name]
# Alter Language: [name]
# Defines a new language or alters an existing one. Its name can use any
# characters. If any of the properties below have an add/replace form, you
# must use that when using Alter Language.
#
# The language Shebang Script is special. It's entry is only used for
# extensions, and files with those extensions have their shebang (#!) lines
# read to determine the real language of the file. Extensionless files are
# always treated this way.
#
# The language Text File is also special. It's treated as one big comment
# so you can put Natural Docs content in them without special symbols. Also,
# if you don't specify a package separator, ignored prefixes, or enum value
# behavior, it will copy those settings from the language that is used most
# in the source tree.
#
# Extensions: [extension] [extension] ...
# [Add/Replace] Extensions: [extension] [extension] ...
# Defines the file extensions of the language's source files. You can
# redefine extensions found in the main languages file. You can use * to
# mean any undefined extension.
#
# Shebang Strings: [string] [string] ...
# [Add/Replace] Shebang Strings: [string] [string] ...
# Defines a list of strings that can appear in the shebang (#!) line to
# designate that it's part of the language. You can redefine strings found
# in the main languages file.
#
# Ignore Prefixes in Index: [prefix] [prefix] ...
# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
#
# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
# Specifies prefixes that should be ignored when sorting symbols in an
# index. Can be specified in general or for a specific topic type.
#
#------------------------------------------------------------------------------
# For basic language support only:
#
# Line Comments: [symbol] [symbol] ...
# Defines a space-separated list of symbols that are used for line comments,
# if any.
#
# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
# Defines a space-separated list of symbol pairs that are used for block
# comments, if any.
#
# Package Separator: [symbol]
# Defines the default package separator symbol. The default is a dot.
#
# [Topic Type] Prototype Enders: [symbol] [symbol] ...
# When defined, Natural Docs will attempt to get a prototype from the code
# immediately following the topic type. It stops when it reaches one of
# these symbols. Use \n for line breaks.
#
# Line Extender: [symbol]
# Defines the symbol that allows a prototype to span multiple lines if
# normally a line break would end it.
#
# Enum Values: [global|under type|under parent]
# Defines how enum values are referenced. The default is global.
# global - Values are always global, referenced as 'value'.
# under type - Values are under the enum type, referenced as
# 'package.enum.value'.
# under parent - Values are under the enum's parent, referenced as
# 'package.value'.
#
# Perl Package: [perl package]
# Specifies the Perl package used to fine-tune the language behavior in ways
# too complex to do in this file.
#
#------------------------------------------------------------------------------
# For full language support only:
#
# Full Language Support: [perl package]
# Specifies the Perl package that has the parsing routines necessary for full
# language support.
#
#-------------------------------------------------------------------------------
# The following languages are defined in the main file, if you'd like to alter
# them:
#
# Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
# PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
# ActionScript, ColdFusion, R, Fortran
# If you add a language that you think would be useful to other developers
# and should be included in Natural Docs by default, please e-mail it to
# languages [at] naturaldocs [dot] org.

View File

@@ -1,472 +0,0 @@
Format: 1.52
Title: OpenLayers
SubTitle: JavaScript Mapping Library
# You can add a footer to your documentation like this:
# Footer: [text]
# If you want to add a copyright notice, this would be the place to do it.
# You can add a timestamp to your documentation like one of these:
# Timestamp: Generated on month day, year
# Timestamp: Updated mm/dd/yyyy
# Timestamp: Last updated mon day
#
# m - One or two digit month. January is "1"
# mm - Always two digit month. January is "01"
# mon - Short month word. January is "Jan"
# month - Long month word. January is "January"
# d - One or two digit day. 1 is "1"
# dd - Always two digit day. 1 is "01"
# day - Day with letter extension. 1 is "1st"
# yy - Two digit year. 2006 is "06"
# yyyy - Four digit year. 2006 is "2006"
# year - Four digit year. 2006 is "2006"
# --------------------------------------------------------------------------
#
# Cut and paste the lines below to change the order in which your files
# appear on the menu. Don't worry about adding or removing files, Natural
# Docs will take care of that.
#
# You can further organize the menu by grouping the entries. Add a
# "Group: [name] {" line to start a group, and add a "}" to end it.
#
# You can add text and web links to the menu by adding "Text: [text]" and
# "Link: [name] ([URL])" lines, respectively.
#
# The formatting and comments are auto-generated, so don't worry about
# neatness when editing the file. Natural Docs will clean it up the next
# time it is run. When working with groups, just deal with the braces and
# forget about the indentation and comments.
#
# --------------------------------------------------------------------------
Group: OpenLayers {
File: OpenLayers (no auto-title, OpenLayers.js)
Group: BaseTypes {
File: Base Types (no auto-title, OpenLayers/BaseTypes.js)
File: Bounds (no auto-title, OpenLayers/BaseTypes/Bounds.js)
File: Class (no auto-title, OpenLayers/BaseTypes/Class.js)
File: Date (no auto-title, OpenLayers/BaseTypes/Date.js)
File: Element (no auto-title, OpenLayers/BaseTypes/Element.js)
File: LonLat (no auto-title, OpenLayers/BaseTypes/LonLat.js)
File: Pixel (no auto-title, OpenLayers/BaseTypes/Pixel.js)
File: Size (no auto-title, OpenLayers/BaseTypes/Size.js)
} # Group: BaseTypes
File: Console (no auto-title, OpenLayers/Console.js)
Group: Control {
File: Control (no auto-title, OpenLayers/Control.js)
File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js)
File: Attribution (no auto-title, OpenLayers/Control/Attribution.js)
File: Button (no auto-title, OpenLayers/Control/Button.js)
File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js)
File: DragPan (no auto-title, OpenLayers/Control/DragPan.js)
File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js)
File: EditingToolbar (no auto-title, OpenLayers/Control/EditingToolbar.js)
File: Geolocate (no auto-title, OpenLayers/Control/Geolocate.js)
File: GetFeature (no auto-title, OpenLayers/Control/GetFeature.js)
File: Graticule (no auto-title, OpenLayers/Control/Graticule.js)
File: KeyboardDefaults (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
File: LayerSwitcher (no auto-title, OpenLayers/Control/LayerSwitcher.js)
File: Measure (no auto-title, OpenLayers/Control/Measure.js)
File: ModifyFeature (no auto-title, OpenLayers/Control/ModifyFeature.js)
File: MousePosition (no auto-title, OpenLayers/Control/MousePosition.js)
File: Navigation (no auto-title, OpenLayers/Control/Navigation.js)
File: NavigationHistory (no auto-title, OpenLayers/Control/NavigationHistory.js)
File: NavToolbar (no auto-title, OpenLayers/Control/NavToolbar.js)
File: OverviewMap (no auto-title, OpenLayers/Control/OverviewMap.js)
File: Pan (no auto-title, OpenLayers/Control/Pan.js)
File: Panel (no auto-title, OpenLayers/Control/Panel.js)
File: PanPanel (no auto-title, OpenLayers/Control/PanPanel.js)
File: PanZoom (no auto-title, OpenLayers/Control/PanZoom.js)
File: PanZoomBar (no auto-title, OpenLayers/Control/PanZoomBar.js)
File: Permalink (no auto-title, OpenLayers/Control/Permalink.js)
File: PinchZoom (no auto-title, OpenLayers/Control/PinchZoom.js)
File: Scale (no auto-title, OpenLayers/Control/Scale.js)
File: ScaleLine (no auto-title, OpenLayers/Control/ScaleLine.js)
File: SelectFeature (no auto-title, OpenLayers/Control/SelectFeature.js)
File: SLDSelect (no auto-title, OpenLayers/Control/SLDSelect.js)
File: Snapping (no auto-title, OpenLayers/Control/Snapping.js)
File: Split (no auto-title, OpenLayers/Control/Split.js)
File: TouchNavigation (no auto-title, OpenLayers/Control/TouchNavigation.js)
File: TransformFeature (no auto-title, OpenLayers/Control/TransformFeature.js)
File: WMSGetFeatureInfo (no auto-title, OpenLayers/Control/WMSGetFeatureInfo.js)
File: WMTSGetFeatureInfo (no auto-title, OpenLayers/Control/WMTSGetFeatureInfo.js)
File: ZoomBox (no auto-title, OpenLayers/Control/ZoomBox.js)
File: ZoomIn (no auto-title, OpenLayers/Control/ZoomIn.js)
File: ZoomOut (no auto-title, OpenLayers/Control/ZoomOut.js)
File: ZoomPanel (no auto-title, OpenLayers/Control/ZoomPanel.js)
File: ZoomToMaxExtent (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
} # Group: Control
File: Events (no auto-title, OpenLayers/Events.js)
Group: Feature {
File: Feature (no auto-title, OpenLayers/Feature.js)
File: Vector (no auto-title, OpenLayers/Feature/Vector.js)
} # Group: Feature
Group: Filter {
File: Filter (no auto-title, OpenLayers/Filter.js)
File: Comparison (no auto-title, OpenLayers/Filter/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Filter/FeatureId.js)
File: Function (no auto-title, OpenLayers/Filter/Function.js)
File: Logical (no auto-title, OpenLayers/Filter/Logical.js)
File: Spatial (no auto-title, OpenLayers/Filter/Spatial.js)
} # Group: Filter
Group: Format {
File: Format (no auto-title, OpenLayers/Format.js)
File: ArcXML (no auto-title, OpenLayers/Format/ArcXML.js)
File: ArcXML.Features (no auto-title, OpenLayers/Format/ArcXML/Features.js)
File: Atom (no auto-title, OpenLayers/Format/Atom.js)
File: Context (no auto-title, OpenLayers/Format/Context.js)
File: CQL (no auto-title, OpenLayers/Format/CQL.js)
File: CSWGetDomain (no auto-title, OpenLayers/Format/CSWGetDomain.js)
File: CSWGetDomain.v2_0_2 (no auto-title, OpenLayers/Format/CSWGetDomain/v2_0_2.js)
File: CSWGetRecords (no auto-title, OpenLayers/Format/CSWGetRecords.js)
File: CSWGetRecords.v2_0_2 (no auto-title, OpenLayers/Format/CSWGetRecords/v2_0_2.js)
Group: Filter {
File: Filter (no auto-title, OpenLayers/Format/Filter.js)
File: v1 (no auto-title, OpenLayers/Format/Filter/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/Filter/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/Filter/v1_1_0.js)
} # Group: Filter
Group: GML {
File: GML (no auto-title, OpenLayers/Format/GML.js)
File: Base (no auto-title, OpenLayers/Format/GML/Base.js)
File: v2 (no auto-title, OpenLayers/Format/GML/v2.js)
File: v3 (no auto-title, OpenLayers/Format/GML/v3.js)
} # Group: GML
Group: SLD {
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
File: v1 (no auto-title, OpenLayers/Format/SLD/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/SLD/v1_0_0.js)
} # Group: SLD
File: GeoJSON (no auto-title, OpenLayers/Format/GeoJSON.js)
File: GeoRSS (no auto-title, OpenLayers/Format/GeoRSS.js)
File: GPX (no auto-title, OpenLayers/Format/GPX.js)
File: JSON (no auto-title, OpenLayers/Format/JSON.js)
File: KML (no auto-title, OpenLayers/Format/KML.js)
File: OGCExceptionReport (no auto-title, OpenLayers/Format/OGCExceptionReport.js)
File: OSM (no auto-title, OpenLayers/Format/OSM.js)
Group: OWSCommon {
File: OWSCommon (no auto-title, OpenLayers/Format/OWSCommon.js)
File: v1 (no auto-title, OpenLayers/Format/OWSCommon/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/OWSCommon/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/OWSCommon/v1_1_0.js)
} # Group: OWSCommon
File: OWSContext (no auto-title, OpenLayers/Format/OWSContext.js)
File: OWSContext.v0_3_1 (no auto-title, OpenLayers/Format/OWSContext/v0_3_1.js)
File: QueryStringFilter (no auto-title, OpenLayers/Format/QueryStringFilter.js)
File: SOSCapabilities (no auto-title, OpenLayers/Format/SOSCapabilities.js)
File: SOSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/SOSCapabilities/v1_0_0.js)
File: SOSGetFeatureOfInterest (no auto-title, OpenLayers/Format/SOSGetFeatureOfInterest.js)
File: SOSGetObservation (no auto-title, OpenLayers/Format/SOSGetObservation.js)
File: Text (no auto-title, OpenLayers/Format/Text.js)
File: VersionedOGC (OpenLayers/Format/XML/VersionedOGC.js)
File: WCSGetCoverage version 1.1.0 (no auto-title, OpenLayers/Format/WCSGetCoverage.js)
File: WFS (no auto-title, OpenLayers/Format/WFS.js)
Group: WFSCapabilities {
File: WFSCapabilities (no auto-title, OpenLayers/Format/WFSCapabilities.js)
File: v1 (no auto-title, OpenLayers/Format/WFSCapabilities/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WFSCapabilities/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WFSCapabilities/v1_1_0.js)
} # Group: WFSCapabilities
Group: WFST {
File: WFST (no auto-title, OpenLayers/Format/WFST.js)
File: v1 (no auto-title, OpenLayers/Format/WFST/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WFST/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WFST/v1_1_0.js)
} # Group: WFST
Group: WMC {
File: WMC (no auto-title, OpenLayers/Format/WMC.js)
File: v1 (no auto-title, OpenLayers/Format/WMC/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WMC/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js)
} # Group: WMC
Group: WMSCapabilities {
File: WMSCapabilities (no auto-title, OpenLayers/Format/WMSCapabilities.js)
File: v1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1.js)
File: v1_1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_0.js)
File: v1_1_1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1.js)
File: v1_3 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3.js)
File: v1_3_0 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3_0.js)
File: WMSCapabilities/v1_1_1_WMSC (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js)
} # Group: WMSCapabilities
Group: WMSDescribeLayer {
File: WMSDescribeLayer (no auto-title, OpenLayers/Format/WMSDescribeLayer.js)
File: v1_1 (no auto-title, OpenLayers/Format/WMSDescribeLayer/v1_1.js)
} # Group: WMSDescribeLayer
File: WFSDescribeFeatureType (no auto-title, OpenLayers/Format/WFSDescribeFeatureType.js)
File: WKT (no auto-title, OpenLayers/Format/WKT.js)
File: WMSGetFeatureInfo (no auto-title, OpenLayers/Format/WMSGetFeatureInfo.js)
File: WMTSCapabilities (no auto-title, OpenLayers/Format/WMTSCapabilities.js)
File: WMTSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
File: WPSCapabilities (no auto-title, OpenLayers/Format/WPSCapabilities.js)
File: WPSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/WPSCapabilities/v1_0_0.js)
File: WPSDescribeProcess (no auto-title, OpenLayers/Format/WPSDescribeProcess.js)
File: WPSExecute version 1.0.0 (no auto-title, OpenLayers/Format/WPSExecute.js)
File: XLS (no auto-title, OpenLayers/Format/XLS.js)
File: XLS.v1 (no auto-title, OpenLayers/Format/XLS/v1.js)
File: XLS.v1_1_0 (no auto-title, OpenLayers/Format/XLS/v1_1_0.js)
File: XML (no auto-title, OpenLayers/Format/XML.js)
} # Group: Format
Group: Geometry {
File: Geometry (no auto-title, OpenLayers/Geometry.js)
File: Collection (no auto-title, OpenLayers/Geometry/Collection.js)
File: Curve (no auto-title, OpenLayers/Geometry/Curve.js)
File: LinearRing (no auto-title, OpenLayers/Geometry/LinearRing.js)
File: LineString (no auto-title, OpenLayers/Geometry/LineString.js)
File: MultiLineString (no auto-title, OpenLayers/Geometry/MultiLineString.js)
File: MultiPoint (no auto-title, OpenLayers/Geometry/MultiPoint.js)
File: MultiPolygon (no auto-title, OpenLayers/Geometry/MultiPolygon.js)
File: Point (no auto-title, OpenLayers/Geometry/Point.js)
File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js)
} # Group: Geometry
Group: Handler {
File: Handler (no auto-title, OpenLayers/Handler.js)
File: Box (no auto-title, OpenLayers/Handler/Box.js)
File: Click (no auto-title, OpenLayers/Handler/Click.js)
File: Drag (no auto-title, OpenLayers/Handler/Drag.js)
File: Feature (no auto-title, OpenLayers/Handler/Feature.js)
File: Hover (no auto-title, OpenLayers/Handler/Hover.js)
File: Keyboard (no auto-title, OpenLayers/Handler/Keyboard.js)
File: MouseWheel (no auto-title, OpenLayers/Handler/MouseWheel.js)
File: Path (no auto-title, OpenLayers/Handler/Path.js)
File: Pinch (no auto-title, OpenLayers/Handler/Pinch.js)
File: Point (no auto-title, OpenLayers/Handler/Point.js)
File: Polygon (no auto-title, OpenLayers/Handler/Polygon.js)
File: RegularPolygon (no auto-title, OpenLayers/Handler/RegularPolygon.js)
} # Group: Handler
File: Icon (no auto-title, OpenLayers/Icon.js)
Group: Lang {
File: Lang (no auto-title, OpenLayers/Lang.js)
File: ar (no auto-title, OpenLayers/Lang/ar.js)
File: be-tarask (no auto-title, OpenLayers/Lang/be-tarask.js)
File: bg (no auto-title, OpenLayers/Lang/bg.js)
File: br (no auto-title, OpenLayers/Lang/br.js)
File: ca (no auto-title, OpenLayers/Lang/ca.js)
File: cs-CZ (no auto-title, OpenLayers/Lang/cs-CZ.js)
File: da-DK (no auto-title, OpenLayers/Lang/da-DK.js)
File: de (no auto-title, OpenLayers/Lang/de.js)
File: en (no auto-title, OpenLayers/Lang/en.js)
File: en-CA (no auto-title, OpenLayers/Lang/en-CA.js)
File: es (no auto-title, OpenLayers/Lang/es.js)
File: el (no auto-title, OpenLayers/Lang/el.js)
File: fi (no auto-title, OpenLayers/Lang/fi.js)
File: fr (no auto-title, OpenLayers/Lang/fr.js)
File: fur (no auto-title, OpenLayers/Lang/fur.js)
File: gl (no auto-title, OpenLayers/Lang/gl.js)
File: gsw (no auto-title, OpenLayers/Lang/gsw.js)
File: hr (no auto-title, OpenLayers/Lang/hr.js)
File: hsb (no auto-title, OpenLayers/Lang/hsb.js)
File: hu (no auto-title, OpenLayers/Lang/hu.js)
File: ia (no auto-title, OpenLayers/Lang/ia.js)
File: id (no auto-title, OpenLayers/Lang/id.js)
File: io (no auto-title, OpenLayers/Lang/io.js)
File: is (no auto-title, OpenLayers/Lang/is.js)
File: it (no auto-title, OpenLayers/Lang/it.js)
File: ja (no auto-title, OpenLayers/Lang/ja.js)
File: km (no auto-title, OpenLayers/Lang/km.js)
File: ksh (no auto-title, OpenLayers/Lang/ksh.js)
File: lt (no auto-title, OpenLayers/Lang/lt.js)
File: nds (no auto-title, OpenLayers/Lang/nds.js)
File: nb (no auto-title, OpenLayers/Lang/nb.js)
File: nl (no auto-title, OpenLayers/Lang/nl.js)
File: nn (no auto-title, OpenLayers/Lang/nn.js)
File: oc (no auto-title, OpenLayers/Lang/oc.js)
File: pt (no auto-title, OpenLayers/Lang/pt.js)
File: pl (no auto-title, OpenLayers/Lang/pl.js)
File: pt-BR (no auto-title, OpenLayers/Lang/pt-BR.js)
File: ru (no auto-title, OpenLayers/Lang/ru.js)
File: sk (no auto-title, OpenLayers/Lang/sk.js)
File: sv-SE (no auto-title, OpenLayers/Lang/sv-SE.js)
File: te (no auto-title, OpenLayers/Lang/te.js)
File: vi (no auto-title, OpenLayers/Lang/vi.js)
File: zh-CN (no auto-title, OpenLayers/Lang/zh-CN.js)
File: zh-TW (no auto-title, OpenLayers/Lang/zh-TW.js)
} # Group: Lang
Group: Layer {
File: Layer (no auto-title, OpenLayers/Layer.js)
File: ArcGISCache.js (no auto-title, OpenLayers/Layer/ArcGISCache.js)
File: ArcGIS93Rest (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
File: ArcIMS (no auto-title, OpenLayers/Layer/ArcIMS.js)
File: Bing (no auto-title, OpenLayers/Layer/Bing.js)
File: Boxes (no auto-title, OpenLayers/Layer/Boxes.js)
File: EventPane (no auto-title, OpenLayers/Layer/EventPane.js)
File: FixedZoomLevels (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
File: GeoRSS (no auto-title, OpenLayers/Layer/GeoRSS.js)
File: Google (no auto-title, OpenLayers/Layer/Google.js)
File: Google.v3 (no auto-title, OpenLayers/Layer/Google/v3.js)
File: Grid (no auto-title, OpenLayers/Layer/Grid.js)
File: HTTPRequest (no auto-title, OpenLayers/Layer/HTTPRequest.js)
File: Image (no auto-title, OpenLayers/Layer/Image.js)
File: KaMap (no auto-title, OpenLayers/Layer/KaMap.js)
File: KaMapCache (no auto-title, OpenLayers/Layer/KaMapCache.js)
File: MapGuide (no auto-title, OpenLayers/Layer/MapGuide.js)
File: MapServer (no auto-title, OpenLayers/Layer/MapServer.js)
File: Markers (no auto-title, OpenLayers/Layer/Markers.js)
File: OSM (no auto-title, OpenLayers/Layer/OSM.js)
File: PointGrid (no auto-title, OpenLayers/Layer/PointGrid.js)
File: PointTrack (no auto-title, OpenLayers/Layer/PointTrack.js)
File: SphericalMercator (no auto-title, OpenLayers/Layer/SphericalMercator.js)
File: Text (no auto-title, OpenLayers/Layer/Text.js)
File: TileCache (no auto-title, OpenLayers/Layer/TileCache.js)
File: TMS (no auto-title, OpenLayers/Layer/TMS.js)
File: Vector (no auto-title, OpenLayers/Layer/Vector.js)
File: Vector.RootContainer (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
File: WMS (no auto-title, OpenLayers/Layer/WMS.js)
File: WMTS (no auto-title, OpenLayers/Layer/WMTS.js)
File: WorldWind (no auto-title, OpenLayers/Layer/WorldWind.js)
File: XYZ (no auto-title, OpenLayers/Layer/XYZ.js)
File: Zoomify (no auto-title, OpenLayers/Layer/Zoomify.js)
} # Group: Layer
File: Map (no auto-title, OpenLayers/Map.js)
Group: Marker {
File: Marker (no auto-title, OpenLayers/Marker.js)
File: Box (no auto-title, OpenLayers/Marker/Box.js)
} # Group: Marker
Group: Popup {
File: Popup (no auto-title, OpenLayers/Popup.js)
File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js)
File: Framed (no auto-title, OpenLayers/Popup/Framed.js)
File: FramedCloud (no auto-title, OpenLayers/Popup/FramedCloud.js)
} # Group: Popup
File: Projection (no auto-title, OpenLayers/Projection.js)
Group: Protocol {
File: Protocol (no auto-title, OpenLayers/Protocol.js)
File: HTTP (no auto-title, OpenLayers/Protocol/HTTP.js)
Group: WFS {
File: WFS (no auto-title, OpenLayers/Protocol/WFS.js)
File: v1 (no auto-title, OpenLayers/Protocol/WFS/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Protocol/WFS/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Protocol/WFS/v1_1_0.js)
} # Group: WFS
File: Script (no auto-title, OpenLayers/Protocol/Script.js)
File: SOS.DEFAULTS (no auto-title, OpenLayers/Protocol/SOS.js)
File: SOS.v1_0_0 (no auto-title, OpenLayers/Protocol/SOS/v1_0_0.js)
} # Group: Protocol
Group: Renderer {
File: Renderer (no auto-title, OpenLayers/Renderer.js)
File: Canvas (no auto-title, OpenLayers/Renderer/Canvas.js)
File: ElementsIndexer (no auto-title, OpenLayers/Renderer/Elements.js)
File: SVG (no auto-title, OpenLayers/Renderer/SVG.js)
File: VML (no auto-title, OpenLayers/Renderer/VML.js)
} # Group: Renderer
Group: Request {
File: Request (no auto-title, OpenLayers/Request.js)
File: XMLHttpRequest (no auto-title, OpenLayers/Request/XMLHttpRequest.js)
} # Group: Request
File: Rule (no auto-title, OpenLayers/Rule.js)
File: SingleFile.js (no auto-title, OpenLayers/SingleFile.js)
Group: Strategy {
File: Strategy (no auto-title, OpenLayers/Strategy.js)
File: BBOX (no auto-title, OpenLayers/Strategy/BBOX.js)
File: Cluster (no auto-title, OpenLayers/Strategy/Cluster.js)
File: Filter (no auto-title, OpenLayers/Strategy/Filter.js)
File: Fixed (no auto-title, OpenLayers/Strategy/Fixed.js)
File: Paging (no auto-title, OpenLayers/Strategy/Paging.js)
File: Refresh (no auto-title, OpenLayers/Strategy/Refresh.js)
File: Save (no auto-title, OpenLayers/Strategy/Save.js)
} # Group: Strategy
File: Style (no auto-title, OpenLayers/Style.js)
File: Style2 (no auto-title, OpenLayers/Style2.js)
File: StyleMap (no auto-title, OpenLayers/StyleMap.js)
Group: Symbolizer {
File: Symbolizer (no auto-title, OpenLayers/Symbolizer.js)
File: Line (no auto-title, OpenLayers/Symbolizer/Line.js)
File: Point (no auto-title, OpenLayers/Symbolizer/Point.js)
File: Polygon (no auto-title, OpenLayers/Symbolizer/Polygon.js)
File: Raster (no auto-title, OpenLayers/Symbolizer/Raster.js)
File: Text (no auto-title, OpenLayers/Symbolizer/Text.js)
} # Group: Symbolizer
Group: Tile {
File: Tile (no auto-title, OpenLayers/Tile.js)
File: Image (no auto-title, OpenLayers/Tile/Image.js)
File: Image.IFrame (no auto-title, OpenLayers/Tile/Image/IFrame.js)
} # Group: Tile
File: Tween (no auto-title, OpenLayers/Tween.js)
File: Util (no auto-title, OpenLayers/Util.js)
File: Deprecated (no auto-title, deprecated.js)
} # Group: OpenLayers
Group: Index {
Index: Everything
Class Index: Classes
Constant Index: Constants
Function Index: Functions
Property Index: Properties
File Index: Files
Constructor Index: Constructor
} # Group: Index

View File

@@ -1,20 +0,0 @@
p {
text-indent: 0; margin-bottom: 1em;
}
.MGroup {
font-variant: normal;
margin: 0.4em 0 0em 10px
}
.MTitle {
font-variant: normal;
}
.CGroup .CTitle {
font-variant: normal;
}
.SGroup .SEntry {
font-variant: normal;
}

View File

@@ -1,105 +0,0 @@
Format: 1.52
# This is the Natural Docs topics file for this project. If you change anything
# here, it will apply to THIS PROJECT ONLY. If you'd like to change something
# for all your projects, edit the Topics.txt in Natural Docs' Config directory
# instead.
Ignore Keywords:
function, functions
func, funcs
procedure, procedures
proc, procs
routine, routines
subroutine, subroutines
sub, subs
method, methods
callback, callbacks
property, properties
prop, props
#-------------------------------------------------------------------------------
# SYNTAX:
#
# Topic Type: [name]
# Alter Topic Type: [name]
# Creates a new topic type or alters one from the main file. Each type gets
# its own index and behavior settings. Its name can have letters, numbers,
# spaces, and these charaters: - / . '
#
# Plural: [name]
# Sets the plural name of the topic type, if different.
#
# Keywords:
# [keyword]
# [keyword], [plural keyword]
# ...
# Defines or adds to the list of keywords for the topic type. They may only
# contain letters, numbers, and spaces and are not case sensitive. Plural
# keywords are used for list topics. You can redefine keywords found in the
# main topics file.
#
# Index: [yes|no]
# Whether the topics get their own index. Defaults to yes. Everything is
# included in the general index regardless of this setting.
#
# Scope: [normal|start|end|always global]
# How the topics affects scope. Defaults to normal.
# normal - Topics stay within the current scope.
# start - Topics start a new scope for all the topics beneath it,
# like class topics.
# end - Topics reset the scope back to global for all the topics
# beneath it.
# always global - Topics are defined as global, but do not change the scope
# for any other topics.
#
# Class Hierarchy: [yes|no]
# Whether the topics are part of the class hierarchy. Defaults to no.
#
# Page Title If First: [yes|no]
# Whether the topic's title becomes the page title if it's the first one in
# a file. Defaults to no.
#
# Break Lists: [yes|no]
# Whether list topics should be broken into individual topics in the output.
# Defaults to no.
#
# Can Group With: [type], [type], ...
# Defines a list of topic types that this one can possibly be grouped with.
# Defaults to none.
#-------------------------------------------------------------------------------
# The following topics are defined in the main file, if you'd like to alter
# their behavior or add keywords:
#
# Generic, Class, Interface, Section, File, Group, Function, Variable,
# Property, Type, Constant, Enumeration, Event, Delegate, Macro,
# Database, Database Table, Database View, Database Index, Database
# Cursor, Database Trigger, Cookie, Build Target
# If you add something that you think would be useful to other developers
# and should be included in Natural Docs by default, please e-mail it to
# topics [at] naturaldocs [dot] org.
Topic Type: Constructor
Class Hierarchy: Yes
Keywords:
constructor
initialize
Alter Topic Type: Function
Add Keywords:
apimethod
apifunction
Alter Topic Type: Property
Add Keywords:
apiproperty

View File

@@ -1,127 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="18.000000px"
height="18.000000px"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.42"
sodipodi:docbase="/Users/phil/Documents/work/metacarta/2svn.openlayers.net/follower/code/b-edits-1/openlayers/assets/ui_elements"
sodipodi:docname="pan_icons.svg"
inkscape:export-filename="/Users/phil/Documents/work/metacarta/2svn.openlayers.net/follower/code/b-edits-1/openlayers/assets/ui_elements/zoom-minus-mini.png"
inkscape:export-xdpi="90.000000"
inkscape:export-ydpi="90.000000">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0000000"
inkscape:cx="9.0000000"
inkscape:cy="9.0000000"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:window-width="1226"
inkscape:window-height="800"
inkscape:window-x="42"
inkscape:window-y="22" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="background"
inkscape:groupmode="layer"
id="layer1">
<g
id="g2110">
<path
transform="matrix(0.000000,-1.003160,1.003160,0.000000,-2.844000e-2,18.02844)"
d="M 17.971654 9.0000000 A 8.9716539 8.9716539 0 1 1 0.028346062,9.0000000 A 8.9716539 8.9716539 0 1 1 17.971654 9.0000000 z"
sodipodi:ry="8.9716539"
sodipodi:rx="8.9716539"
sodipodi:cy="9.0000000"
sodipodi:cx="9.0000000"
id="path2059"
style="fill:#00008b;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
sodipodi:type="arc" />
<rect
transform="matrix(0.000000,-1.000000,1.000000,0.000000,0.000000,0.000000)"
y="4.3599998e-06"
x="-9.0000048"
height="18.000000"
width="9.0000000"
id="rect2061"
style="fill:#00008b;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="zoom"
style="display:inline">
<text
xml:space="preserve"
style="font-size:18.000000px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Helvetica"
x="3.7485352"
y="-3.4077148"
id="text2114"
sodipodi:linespacing="125.00000%"
transform="scale(1.000000,-1.000000)"><tspan
sodipodi:role="line"
id="tspan2118"
x="3.7485352"
y="-3.4077148"></tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="overlay"
style="display:none">
<path
style="font-size:12.000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Verdana"
d="M 2.9678210,9.0332227 C 2.9678314,9.5015070 3.1752531,9.8938504 3.5900866,10.210254 C 3.6463464,10.254553 3.9451742,10.453889 4.4865710,10.808262 L 8.1568835,13.247754 C 8.2693886,13.323691 8.4240759,13.393300 8.6209460,13.456582 C 8.8107943,13.519862 9.0041535,13.551503 9.2010240,13.551504 C 9.5736843,13.551503 9.8936056,13.431269 10.160789,13.190801 C 10.427980,12.950332 10.561574,12.659238 10.561572,12.317520 C 10.561574,11.861896 10.322511,11.488536 9.8443836,11.197442 L 8.5998522,10.428575 L 14.548408,10.428575 C 15.026535,10.428577 15.406221,10.298849 15.687470,10.039395 C 15.968721,9.7799443 16.109345,9.4318977 16.109345,8.9952540 C 16.109345,8.5396330 15.961690,8.1915865 15.666377,7.9511133 C 15.364034,7.7106494 14.980831,7.5904152 14.516767,7.5904102 L 8.6314928,7.5904102 L 9.9920390,6.7076368 C 10.160793,6.5937365 10.290871,6.4481897 10.382274,6.2709962 C 10.466652,6.0874870 10.508840,5.8913153 10.508837,5.6824805 C 10.508840,5.3281127 10.378761,5.0338552 10.118602,4.7997070 C 9.8584498,4.5655745 9.5279814,4.4485043 9.1271961,4.4484962 C 8.7615757,4.4485043 8.4029823,4.5624104 8.0514147,4.7902149 L 3.9697741,7.5239649 C 3.6393151,7.7454540 3.4002529,7.9542820 3.2525866,8.1504493 C 3.0627532,8.3972503 2.9678314,8.6756875 2.9678210,8.9857618 L 2.9678210,9.0332227"
id="text2082"
sodipodi:nodetypes="csccsssscccssscccssssccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="pan triangle"
style="display:none">
<path
sodipodi:type="star"
style="fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
id="path2107"
sodipodi:sides="3"
sodipodi:cx="6.8031497"
sodipodi:cy="5.1874018"
sodipodi:r1="5.0880113"
sodipodi:r2="2.5440056"
sodipodi:arg1="1.0471976"
sodipodi:arg2="2.0943951"
inkscape:flatsided="false"
inkscape:rounded="0.0000000"
inkscape:randomized="0.0000000"
d="M 9.3471551,9.5937489 L 5.5311469,7.3905753 L 1.7151384,5.1874015 L 5.5311469,2.9842283 L 9.3471555,0.78105489 L 9.3471553,5.1874018 L 9.3471551,9.5937489 z "
transform="matrix(0.000000,-1.331000,1.331000,0.000000,2.038879,16.92102)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -1,128 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="18.000000px"
height="18.000000px"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.43"
sodipodi:docbase="/home/sderle/projects/openlayers/layerswitcher/art"
sodipodi:docname="layer-switcher-maximize.svg"
inkscape:export-filename="/Users/phil/Documents/work/metacarta/2svn.openlayers.net/follower/code/b-edits-1/openlayers/assets/ui_elements/zoom-minus-mini.png"
inkscape:export-xdpi="90.000000"
inkscape:export-ydpi="90.000000">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="16"
inkscape:cx="9"
inkscape:cy="9"
inkscape:document-units="px"
inkscape:current-layer="layer4"
inkscape:window-width="1226"
inkscape:window-height="800"
inkscape:window-x="42"
inkscape:window-y="25" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="background"
inkscape:groupmode="layer"
id="layer1">
<g
id="g2110"
transform="matrix(-7.849624e-17,1,-1,-7.849624e-17,18,0)">
<path
transform="matrix(0,-1.00316,1.00316,0,-2.844e-2,18.02844)"
d="M 17.971654 9 A 8.9716539 8.9716539 0 1 1 0.028346062,9 A 8.9716539 8.9716539 0 1 1 17.971654 9 z"
sodipodi:ry="8.9716539"
sodipodi:rx="8.9716539"
sodipodi:cy="9"
sodipodi:cx="9"
id="path2059"
style="fill:#00008b;fill-opacity:1;stroke:none;stroke-width:39.98414612;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="arc" />
<rect
transform="matrix(0,-1,1,0,0,0)"
y="4.3599998e-06"
x="-9.0000048"
height="18"
width="9"
id="rect2061"
style="fill:#00008b;fill-opacity:1;stroke:none;stroke-width:39.98414612;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="zoom"
style="display:inline">
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;display:inline;font-family:Helvetica"
x="1.5214844"
y="-3.2949219"
id="text2114"
sodipodi:linespacing="125%"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan2118"
x="1.5214844"
y="-3.2949219">+</tspan></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="overlay"
style="display:none">
<path
style="font-size:12.000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125.00000%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Verdana"
d="M 2.9678210,9.0332227 C 2.9678314,9.5015070 3.1752531,9.8938504 3.5900866,10.210254 C 3.6463464,10.254553 3.9451742,10.453889 4.4865710,10.808262 L 8.1568835,13.247754 C 8.2693886,13.323691 8.4240759,13.393300 8.6209460,13.456582 C 8.8107943,13.519862 9.0041535,13.551503 9.2010240,13.551504 C 9.5736843,13.551503 9.8936056,13.431269 10.160789,13.190801 C 10.427980,12.950332 10.561574,12.659238 10.561572,12.317520 C 10.561574,11.861896 10.322511,11.488536 9.8443836,11.197442 L 8.5998522,10.428575 L 14.548408,10.428575 C 15.026535,10.428577 15.406221,10.298849 15.687470,10.039395 C 15.968721,9.7799443 16.109345,9.4318977 16.109345,8.9952540 C 16.109345,8.5396330 15.961690,8.1915865 15.666377,7.9511133 C 15.364034,7.7106494 14.980831,7.5904152 14.516767,7.5904102 L 8.6314928,7.5904102 L 9.9920390,6.7076368 C 10.160793,6.5937365 10.290871,6.4481897 10.382274,6.2709962 C 10.466652,6.0874870 10.508840,5.8913153 10.508837,5.6824805 C 10.508840,5.3281127 10.378761,5.0338552 10.118602,4.7997070 C 9.8584498,4.5655745 9.5279814,4.4485043 9.1271961,4.4484962 C 8.7615757,4.4485043 8.4029823,4.5624104 8.0514147,4.7902149 L 3.9697741,7.5239649 C 3.6393151,7.7454540 3.4002529,7.9542820 3.2525866,8.1504493 C 3.0627532,8.3972503 2.9678314,8.6756875 2.9678210,8.9857618 L 2.9678210,9.0332227"
id="text2082"
sodipodi:nodetypes="csccsssscccssscccssssccscc" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="pan triangle"
style="display:none">
<path
sodipodi:type="star"
style="fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000"
id="path2107"
sodipodi:sides="3"
sodipodi:cx="6.8031497"
sodipodi:cy="5.1874018"
sodipodi:r1="5.0880113"
sodipodi:r2="2.5440056"
sodipodi:arg1="1.0471976"
sodipodi:arg2="2.0943951"
inkscape:flatsided="false"
inkscape:rounded="0.0000000"
inkscape:randomized="0.0000000"
d="M 9.3471551,9.5937489 L 5.5311469,7.3905753 L 1.7151384,5.1874015 L 5.5311469,2.9842283 L 9.3471555,0.78105489 L 9.3471553,5.1874018 L 9.3471551,9.5937489 z "
transform="matrix(0.000000,-1.331000,1.331000,0.000000,2.038879,16.92102)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -1,142 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="90.000000"
inkscape:export-xdpi="90.000000"
inkscape:export-filename="/home/sderle/projects/openlayers/layerswitcher/img/layer-switcher-minimize.png"
sodipodi:docname="layer-switcher-minimize.svg"
sodipodi:docbase="/home/sderle/projects/openlayers/layerswitcher/art"
inkscape:version="0.43"
sodipodi:version="0.32"
id="svg2"
height="18.000000px"
width="18.000000px">
<defs
id="defs4" />
<sodipodi:namedview
inkscape:window-y="26"
inkscape:window-x="42"
inkscape:window-height="800"
inkscape:window-width="1226"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="9.3025513"
inkscape:cx="9"
inkscape:zoom="16"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="background">
<rect
style="fill:#00008b;fill-opacity:0;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
id="rect2061"
width="18.014498"
height="18.000000"
x="-18.014502"
y="4.3599998e-06"
transform="matrix(0.000000,-1.000000,1.000000,0.000000,0.000000,0.000000)"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
inkscape:export-filename="/home/sderle/projects/openlayers/layerswitcher/art/layer-switcher-minimize.png" />
</g>
<g
inkscape:label="graticule"
id="layer5"
inkscape:groupmode="layer">
<text
xml:space="preserve"
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;display:inline;font-family:Helvetica"
x="5.2802601"
y="-3.8032362"
id="text1432"
sodipodi:linespacing="125%"
transform="scale(1,-1)"><tspan
sodipodi:role="line"
id="tspan1434"
x="5.2802601"
y="-3.8032362">-</tspan></text>
<rect
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99699599px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="rect1438"
width="13.003004"
height="13.002999"
x="2.498498"
y="2.4984975" />
</g>
<g
style="display:none"
inkscape:label="zoom"
id="layer4"
inkscape:groupmode="layer">
<text
transform="scale(1.000000,-1.000000)"
sodipodi:linespacing="125.00000%"
id="text2114"
y="-3.4077148"
x="3.7485352"
style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Helvetica;text-anchor:start;writing-mode:lr-tb"
xml:space="preserve"><tspan
y="-3.4077148"
x="3.7485352"
id="tspan2118"
sodipodi:role="line"></tspan></text>
</g>
<g
style="display:none"
inkscape:label="overlay"
id="layer2"
inkscape:groupmode="layer">
<path
sodipodi:nodetypes="csccsssscccssscccssssccscc"
id="text2082"
d="M 2.9678210,9.0332227 C 2.9678314,9.5015070 3.1752531,9.8938504 3.5900866,10.210254 C 3.6463464,10.254553 3.9451742,10.453889 4.4865710,10.808262 L 8.1568835,13.247754 C 8.2693886,13.323691 8.4240759,13.393300 8.6209460,13.456582 C 8.8107943,13.519862 9.0041535,13.551503 9.2010240,13.551504 C 9.5736843,13.551503 9.8936056,13.431269 10.160789,13.190801 C 10.427980,12.950332 10.561574,12.659238 10.561572,12.317520 C 10.561574,11.861896 10.322511,11.488536 9.8443836,11.197442 L 8.5998522,10.428575 L 14.548408,10.428575 C 15.026535,10.428577 15.406221,10.298849 15.687470,10.039395 C 15.968721,9.7799443 16.109345,9.4318977 16.109345,8.9952540 C 16.109345,8.5396330 15.961690,8.1915865 15.666377,7.9511133 C 15.364034,7.7106494 14.980831,7.5904152 14.516767,7.5904102 L 8.6314928,7.5904102 L 9.9920390,6.7076368 C 10.160793,6.5937365 10.290871,6.4481897 10.382274,6.2709962 C 10.466652,6.0874870 10.508840,5.8913153 10.508837,5.6824805 C 10.508840,5.3281127 10.378761,5.0338552 10.118602,4.7997070 C 9.8584498,4.5655745 9.5279814,4.4485043 9.1271961,4.4484962 C 8.7615757,4.4485043 8.4029823,4.5624104 8.0514147,4.7902149 L 3.9697741,7.5239649 C 3.6393151,7.7454540 3.4002529,7.9542820 3.2525866,8.1504493 C 3.0627532,8.3972503 2.9678314,8.6756875 2.9678210,8.9857618 L 2.9678210,9.0332227"
style="font-size:12.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Verdana;text-anchor:start;writing-mode:lr-tb" />
</g>
<g
style="display:none"
inkscape:label="pan triangle"
id="layer3"
inkscape:groupmode="layer">
<path
transform="matrix(0.000000,-1.331000,1.331000,0.000000,2.038879,16.92102)"
d="M 9.3471551,9.5937489 L 5.5311469,7.3905753 L 1.7151384,5.1874015 L 5.5311469,2.9842283 L 9.3471555,0.78105489 L 9.3471553,5.1874018 L 9.3471551,9.5937489 z "
inkscape:randomized="0.0000000"
inkscape:rounded="0.0000000"
inkscape:flatsided="false"
sodipodi:arg2="2.0943951"
sodipodi:arg1="1.0471976"
sodipodi:r2="2.5440056"
sodipodi:r1="5.0880113"
sodipodi:cy="5.1874018"
sodipodi:cx="6.8031497"
sodipodi:sides="3"
id="path2107"
style="fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
sodipodi:type="star" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
]>
<svg version="1.1" id="Layer_1" xmlns:i="&ns_ai;"
xmlns="&ns_svg;" width="20.5" height="24.5" viewBox="0 0 20.5 24.5"
overflow="visible" enable-background="new 0 0 20.5 24.5" xml:space="preserve">
<g i:extraneous="self">
<rect x="0.25" y="0.25" opacity="0" stroke="#000000" stroke-width="1" width="20" height="24"/>
<g id="XMLID_2_">
<g>
<polygon fill="#FF0000" points="10.12,0.6 19.93,7.71 10.06,24.03 0.6,7.58 "/>
</g>
<g>
<polyline fill="none" stroke="#000000" stroke-width="1" points="9.98,24.16 10.06,24.03 19.93,7.71 20.06,7.49 "/>
<polyline fill="none" stroke="#000000" stroke-width="1" points="10.13,24.16 10.06,24.03 0.6,7.58 0.5,7.41 "/>
<polyline fill="none" stroke="#000000" stroke-width="1" points="0.41,7.72 0.6,7.58 10.12,0.6 10.29,0.47 "/>
<polyline fill="none" stroke="#000000" stroke-width="1" points="9.94,0.47 10.12,0.6 19.93,7.71 20.06,7.8 "/>
</g>
</g>
<ellipse stroke="#000000" stroke-width="1" cx="10.125" cy="9.25" rx="1.5" ry="1.5"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="28.375" height="28" viewBox="0 0 28.375 28"
overflow="visible" enable-background="new 0 0 28.375 28" xml:space="preserve">
<g i:extraneous="self">
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M27.875,1.375"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M0,1.375"/>
<path fill="none" stroke="#FFFFFF" d="M0,27.475"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,27.645"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,0.544"/>
<line fill="none" stroke="#00008B" x1="0.875" y1="27.5" x2="27.875" y2="27.475"/>
<rect x="0.875" y="1.045" fill="#00008B" width="27.125" height="26"/>
<line fill="none" stroke="#00008B" x1="27.875" y1="26.925" x2="27.875" y2="0.925"/>
<line fill="none" stroke="#FFFFFF" x1="1.375" y1="0.5" x2="27.375" y2="0.5"/>
<line fill="none" stroke="#FFFFFF" x1="0.875" y1="1" x2="0.875" y2="27"/>
<rect x="5.252" y="11.157" transform="matrix(0.7933 -0.6088 0.6088 0.7933 -5.1621 12.1086)" fill="#FFBF00" width="20" height="5"/>
<line fill="#FFBF00" stroke="#000000" x1="8.376" y1="15.783" x2="10.717" y2="18.766"/>
<line fill="#FFBF00" stroke="#000000" x1="11.946" y1="13.043" x2="14.288" y2="16.027"/>
<line fill="#FFBF00" stroke="#000000" x1="15.342" y1="10.437" x2="17.684" y2="13.42"/>
<line fill="#FFBF00" stroke="#000000" x1="18.69" y1="7.869" x2="21.03" y2="10.852"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="28.375" height="28" viewBox="0 0 28.375 28"
overflow="visible" enable-background="new 0 0 28.375 28" xml:space="preserve">
<g i:extraneous="self">
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M27.875,1.375"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M0,1.375"/>
<path fill="none" stroke="#FFFFFF" d="M0,27.475"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,27.645"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,0.544"/>
<line fill="none" stroke="#FFFFFF" x1="0.875" y1="27.5" x2="27.875" y2="27.475"/>
<rect x="0.875" y="1.045" fill="#ADD8E6" width="27.125" height="26"/>
<line fill="none" stroke="#FFFFFF" x1="27.875" y1="26.925" x2="27.875" y2="0.925"/>
<line fill="none" stroke="#00008B" x1="1.375" y1="0.5" x2="27.375" y2="0.5"/>
<line fill="none" stroke="#00008B" x1="0.875" y1="1" x2="0.875" y2="27"/>
<rect x="4.252" y="12.157" transform="matrix(0.7933 -0.6088 0.6088 0.7933 -5.9776 11.7065)" fill="#FFBF00" width="20" height="5"/>
<line fill="#FFBF00" stroke="#000000" x1="7.376" y1="16.783" x2="9.717" y2="19.766"/>
<line fill="#FFBF00" stroke="#000000" x1="10.946" y1="14.043" x2="13.288" y2="17.027"/>
<line fill="#FFBF00" stroke="#000000" x1="14.342" y1="11.437" x2="16.684" y2="14.42"/>
<line fill="#FFBF00" stroke="#000000" x1="17.69" y1="8.869" x2="20.03" y2="11.852"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="28.375" height="28" viewBox="0 0 28.375 28"
overflow="visible" enable-background="new 0 0 28.375 28" xml:space="preserve">
<g i:extraneous="self">
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M27.875,1.375"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M0,1.375"/>
<path fill="none" stroke="#FFFFFF" d="M0,27.475"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,27.645"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,0.544"/>
<line fill="none" stroke="#00008B" x1="0.875" y1="27.5" x2="27.875" y2="27.475"/>
<rect x="0.875" y="1.045" fill="#00008B" width="27.125" height="26"/>
<line fill="none" stroke="#00008B" x1="27.875" y1="26.925" x2="27.875" y2="0.925"/>
<line fill="none" stroke="#FFFFFF" x1="1.375" y1="0.5" x2="27.375" y2="0.5"/>
<line fill="none" stroke="#FFFFFF" x1="0.875" y1="1" x2="0.875" y2="27"/>
<path fill="#FFFFFF" stroke="#000000" d="M9.458,22.458c-0.473-0.168-1.02-1.269-1.363-1.695
c-0.479-0.595-0.894-1.245-1.377-1.829c-0.733-0.887-1.356-1.729-1.854-2.764c-0.375-0.782-0.884-1.997-0.005-2.648
c1.036-0.767,2.095-0.162,2.934,0.479c0.844,0.646,1.729,1.18,2.526,1.869c-0.372-0.305-0.548-0.986-0.778-1.421
c-0.253-0.477-0.565-0.906-0.822-1.375c-0.359-0.657-0.767-1.201-1.21-1.823c-0.544-0.763-1.051-1.74-0.925-2.709
c0.133-1.025,0.972-1.527,1.924-1.207c1.202,0.405,1.969,1.692,2.627,2.698c0.636,0.971,1.201,2.159,1.938,3.042
c-0.222-0.209-0.148-0.508-0.155-0.782c-0.01-0.37-0.097-0.626-0.219-0.967c-0.162-0.455-0.219-0.972-0.24-1.45
c-0.034-0.776-0.25-1.465-0.25-2.247c0-0.988-0.14-1.963,0.71-2.631c0.666-0.523,1.649-0.764,2.381-0.248
c1.385,0.976,1.057,2.999,1.209,4.458c0.079,0.759,0.165,1.489,0.2,2.263c0.022,0.496,0.209,1.067,0.168,1.558
c-0.146-0.269-0.113-0.749-0.127-1.057c-0.022-0.502-0.041-0.982-0.115-1.47c-0.114-0.743-0.188-1.564-0.25-2.324
c-0.152-1.877,2.054-3.17,3.301-1.469c0.884,1.206,0.773,2.643,0.773,4.085c0,0.698-0.034,1.251-0.22,1.91
c-0.13,0.459-0.293,1.222-0.239,1.638c0-0.902,0.334-1.697,0.334-2.588c0-0.678-0.272-2.099,0.581-2.334
c1.065-0.294,2.008,0.875,2.428,1.66c0.458,0.855,0.555,1.901,0.409,2.882c-0.318,2.154-0.845,4.227-2.096,6.072
c-0.268,0.396-0.485,0.838-0.79,1.22c-0.361,0.452-0.923,0.772-1.416,1.071c-0.381,0.232-0.764,0.53-1.176,0.604
c-0.822,0.149-1.725,0.157-2.565,0.157c-1.29,0-2.564-0.068-3.832-0.251c-0.799-0.115-2.12,0.153-2.668-0.54"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="28.375" height="28" viewBox="0 0 28.375 28"
overflow="visible" enable-background="new 0 0 28.375 28" xml:space="preserve">
<g i:extraneous="self">
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M27.875,1.375"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M0,1.375"/>
<path fill="none" stroke="#FFFFFF" d="M0,27.475"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,27.645"/>
<path fill="none" stroke="#00008B" stroke-width="1.5" d="M1,0.544"/>
<line fill="none" stroke="#FFFFFF" x1="0.875" y1="27.5" x2="27.875" y2="27.475"/>
<rect x="0.875" y="1.045" fill="#ADD8E6" width="27.125" height="26"/>
<line fill="none" stroke="#FFFFFF" x1="27.875" y1="26.925" x2="27.875" y2="0.925"/>
<line fill="none" stroke="#00008B" x1="1.375" y1="0.5" x2="27.375" y2="0.5"/>
<line fill="none" stroke="#00008B" x1="0.875" y1="1" x2="0.875" y2="27"/>
<path fill="#FFFFFF" stroke="#000000" d="M8.458,23.458c-0.473-0.168-1.02-1.269-1.363-1.695
c-0.479-0.595-0.894-1.245-1.377-1.829c-0.733-0.887-1.356-1.729-1.854-2.764c-0.375-0.782-0.884-1.997-0.005-2.648
c1.036-0.767,2.095-0.161,2.934,0.479c0.844,0.646,1.729,1.18,2.526,1.869c-0.372-0.305-0.548-0.986-0.778-1.421
c-0.253-0.477-0.565-0.906-0.822-1.375c-0.359-0.657-0.767-1.201-1.21-1.823c-0.544-0.763-1.051-1.74-0.925-2.709
c0.133-1.025,0.972-1.527,1.924-1.207c1.202,0.405,1.969,1.692,2.627,2.698c0.636,0.971,1.201,2.159,1.938,3.042
c-0.222-0.21-0.148-0.509-0.155-0.783c-0.01-0.37-0.097-0.626-0.219-0.967c-0.162-0.455-0.219-0.972-0.24-1.45
c-0.034-0.776-0.25-1.465-0.25-2.247c0-0.988-0.14-1.963,0.71-2.631c0.666-0.523,1.649-0.764,2.381-0.248
c1.385,0.976,1.057,2.999,1.209,4.458c0.079,0.759,0.165,1.489,0.2,2.263c0.022,0.496,0.209,1.068,0.168,1.558
c-0.146-0.27-0.113-0.75-0.127-1.058c-0.022-0.502-0.041-0.982-0.115-1.47c-0.114-0.743-0.188-1.564-0.25-2.324
c-0.152-1.877,2.054-3.17,3.301-1.469c0.884,1.206,0.773,2.643,0.773,4.085c0,0.698-0.034,1.251-0.22,1.91
c-0.13,0.459-0.293,1.222-0.239,1.639c0-0.902,0.334-1.697,0.334-2.589c0-0.678-0.272-2.099,0.581-2.334
c1.065-0.294,2.008,0.875,2.428,1.66c0.458,0.855,0.555,1.901,0.409,2.883c-0.318,2.153-0.845,4.227-2.096,6.071
c-0.268,0.396-0.485,0.838-0.79,1.22c-0.361,0.452-0.923,0.772-1.416,1.071c-0.381,0.232-0.764,0.53-1.176,0.604
c-0.822,0.149-1.725,0.157-2.565,0.157c-1.29,0-2.564-0.068-3.832-0.251c-0.799-0.115-2.12,0.153-2.668-0.54"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.41.1"
sodipodi:docbase="/afs/metacarta.com/user/sderle/public_html/ol.zoombar/art"
sodipodi:docname="slider.svg"
inkscape:export-filename="/afs/metacarta.com/user/sderle/public_html/ol.zoombar/img/slider.png"
inkscape:export-xdpi="90.000000"
inkscape:export-ydpi="90.000000">
<defs
id="defs3" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="39.870978"
inkscape:cx="140.00732"
inkscape:cy="695.49796"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1010"
inkscape:window-height="538"
inkscape:window-x="20"
inkscape:window-y="107" />
<metadata
id="metadata4">
<rdf:RDF
id="RDF5">
<cc:Work
rdf:about=""
id="Work6">
<dc:format
id="format7">image/svg+xml</dc:format>
<dc:type
id="type9"
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#00008b;fill-opacity:1.0000000;stroke:#000080;stroke-width:4.9999957;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
id="rect1291"
x="132.50000"
y="354.86218"
width="15.014628"
height="4.0040474" />
<path
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.0000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
d="M 134.08880,356.89603 L 146.00000,356.87002"
id="path2052" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,193 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="90.000000"
inkscape:export-xdpi="90.000000"
inkscape:export-filename="/Users/phil/Documents/work/metacarta/2svn.openlayers.net/follower/code/b-edits-1/openlayers/assets/ui_elements/zoom-minus-mini.png"
sodipodi:docname="zoom-world.svg"
sodipodi:docbase="/afs/metacarta.com/user/sderle/OL/openlayers/assets/ui_elements"
inkscape:version="0.41.1"
sodipodi:version="0.32"
id="svg2"
height="18.000000px"
width="18.000000px">
<defs
id="defs4" />
<sodipodi:namedview
inkscape:window-y="26"
inkscape:window-x="42"
inkscape:window-height="800"
inkscape:window-width="1226"
inkscape:current-layer="layer5"
inkscape:document-units="px"
inkscape:cy="9.3025513"
inkscape:cx="9.0000000"
inkscape:zoom="1.0000000"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata7">
<rdf:RDF
id="RDF1295">
<cc:Work
id="Work1297"
rdf:about="">
<dc:format
id="format1299">image/svg+xml</dc:format>
<dc:type
id="type1301"
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
style="display:inline"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="background">
<rect
style="fill:#00008b;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
id="rect2061"
width="18.014498"
height="18.000000"
x="-18.014502"
y="4.3599998e-06"
transform="matrix(0.000000,-1.000000,1.000000,0.000000,0.000000,0.000000)" />
</g>
<g
inkscape:label="graticule"
id="layer5"
inkscape:groupmode="layer">
<g
transform="translate(0.000000,-4.419417e-2)"
id="g2876">
<path
transform="matrix(1.155321,0.000000,0.000000,1.155321,-2.292065,-1.751761)"
d="M 16.869573 9.3188362 A 7.0579743 7.0579743 0 1 1 2.7536244,9.3188362 A 7.0579743 7.0579743 0 1 1 16.869573 9.3188362 z"
sodipodi:ry="7.0579743"
sodipodi:rx="7.0579743"
sodipodi:cy="9.3188362"
sodipodi:cx="9.8115988"
id="path1321"
style="fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:0.50000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cc"
id="path2086"
d="M 8.1145142,1.1289949 C 15.315267,9.5238831 8.3963197,17.101449 8.3963197,17.057255"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2846"
d="M 11.588885,1.3666059 C 18.922222,9.5405232 11.605526,16.764536 11.605526,16.764536"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2848"
d="M 5.2258471,2.0593951 C 11.080923,9.7405585 5.3432210,16.278941 5.3432210,16.278941"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2850"
d="M 2.7388198,3.7571959 C 6.3686281,9.1817837 2.9127331,14.361601 2.9127331,14.361601"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
</g>
<g
transform="matrix(-6.269315e-2,0.998033,-0.998033,-6.269315e-2,18.62352,0.612232)"
id="g2883">
<path
transform="matrix(1.155321,0.000000,0.000000,1.155321,-2.292065,-1.751761)"
d="M 16.869573 9.3188362 A 7.0579743 7.0579743 0 1 1 2.7536244,9.3188362 A 7.0579743 7.0579743 0 1 1 16.869573 9.3188362 z"
sodipodi:ry="7.0579743"
sodipodi:rx="7.0579743"
sodipodi:cy="9.3188362"
sodipodi:cx="9.8115988"
id="path2885"
style="fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:0.50000000;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cc"
id="path2887"
d="M 8.1145142,1.1289949 C 15.315267,9.5238831 8.3963197,17.101449 8.3963197,17.057255"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2889"
d="M 11.588885,1.3666059 C 18.922222,9.5405232 11.605526,16.764536 11.605526,16.764536"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2891"
d="M 5.2258471,2.0593951 C 11.080923,9.7405585 5.3432210,16.278941 5.3432210,16.278941"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
<path
sodipodi:nodetypes="cc"
id="path2893"
d="M 2.7388198,3.7571959 C 6.3686281,9.1817837 2.9127331,14.361601 2.9127331,14.361601"
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
</g>
</g>
<g
style="display:none"
inkscape:label="zoom"
id="layer4"
inkscape:groupmode="layer">
<text
transform="scale(1.000000,-1.000000)"
sodipodi:linespacing="125.00000%"
id="text2114"
y="-3.4077148"
x="3.7485352"
style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Helvetica;text-anchor:start;writing-mode:lr-tb"
xml:space="preserve"><tspan
y="-3.4077148"
x="3.7485352"
id="tspan2118"
sodipodi:role="line"></tspan></text>
</g>
<g
style="display:none"
inkscape:label="overlay"
id="layer2"
inkscape:groupmode="layer">
<path
sodipodi:nodetypes="csccsssscccssscccssssccscc"
id="text2082"
d="M 2.9678210,9.0332227 C 2.9678314,9.5015070 3.1752531,9.8938504 3.5900866,10.210254 C 3.6463464,10.254553 3.9451742,10.453889 4.4865710,10.808262 L 8.1568835,13.247754 C 8.2693886,13.323691 8.4240759,13.393300 8.6209460,13.456582 C 8.8107943,13.519862 9.0041535,13.551503 9.2010240,13.551504 C 9.5736843,13.551503 9.8936056,13.431269 10.160789,13.190801 C 10.427980,12.950332 10.561574,12.659238 10.561572,12.317520 C 10.561574,11.861896 10.322511,11.488536 9.8443836,11.197442 L 8.5998522,10.428575 L 14.548408,10.428575 C 15.026535,10.428577 15.406221,10.298849 15.687470,10.039395 C 15.968721,9.7799443 16.109345,9.4318977 16.109345,8.9952540 C 16.109345,8.5396330 15.961690,8.1915865 15.666377,7.9511133 C 15.364034,7.7106494 14.980831,7.5904152 14.516767,7.5904102 L 8.6314928,7.5904102 L 9.9920390,6.7076368 C 10.160793,6.5937365 10.290871,6.4481897 10.382274,6.2709962 C 10.466652,6.0874870 10.508840,5.8913153 10.508837,5.6824805 C 10.508840,5.3281127 10.378761,5.0338552 10.118602,4.7997070 C 9.8584498,4.5655745 9.5279814,4.4485043 9.1271961,4.4484962 C 8.7615757,4.4485043 8.4029823,4.5624104 8.0514147,4.7902149 L 3.9697741,7.5239649 C 3.6393151,7.7454540 3.4002529,7.9542820 3.2525866,8.1504493 C 3.0627532,8.3972503 2.9678314,8.6756875 2.9678210,8.9857618 L 2.9678210,9.0332227"
style="font-size:12.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Verdana;text-anchor:start;writing-mode:lr-tb" />
</g>
<g
style="display:none"
inkscape:label="pan triangle"
id="layer3"
inkscape:groupmode="layer">
<path
transform="matrix(0.000000,-1.331000,1.331000,0.000000,2.038879,16.92102)"
d="M 9.3471551,9.5937489 L 5.5311469,7.3905753 L 1.7151384,5.1874015 L 5.5311469,2.9842283 L 9.3471555,0.78105489 L 9.3471553,5.1874018 L 9.3471551,9.5937489 z "
inkscape:randomized="0.0000000"
inkscape:rounded="0.0000000"
inkscape:flatsided="false"
sodipodi:arg2="2.0943951"
sodipodi:arg1="1.0471976"
sodipodi:r2="2.5440056"
sodipodi:r1="5.0880113"
sodipodi:cy="5.1874018"
sodipodi:cx="6.8031497"
sodipodi:sides="3"
id="path2107"
style="fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:39.984146;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
sodipodi:type="star" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="18"
height="18"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.43"
version="1.0"
inkscape:export-filename="C:\Documents and Settings\crschmidt\Desktop\zoombar.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:docbase="C:\Documents and Settings\crschmidt\Desktop"
sodipodi:docname="zoombar.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-117.50597"
inkscape:cy="65.94562"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showguides="false"
showgrid="false"
inkscape:window-width="1024"
inkscape:window-height="721"
inkscape:window-x="-4"
inkscape:window-y="-4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:0.5;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1307"
width="16.999998"
height="10.000004"
x="-125.51302"
y="-52.420002" />
<path
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999958;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50196078"
d="M -125.54176,-52.415494 L -125.54176,-42.415495"
id="path8297" />
<path
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.99999982;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.50196078"
d="M -108.48157,-52.418044 L -108.48157,-42.418046"
id="path12667" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

51
bin/README.md Normal file
View File

@@ -0,0 +1,51 @@
# Build Utilities
This directory contains utilities used for building OpenLayers applications,
generating the API docs, and building hosted versions of the library.
## Dependencies
OpenLayers is built using [Closure Compiler][closure]. The [plovr][plovr] build
tool simplifies building with Closure Compiler and comes with a built-in version
of the Closure Library and Compiler. Both the Compiler and plovr require Java
version 1.6 or above. This directory includes a bash/batch script for driving
plovr. For pulling down plovr and accessing it in a cross-platform way,
[Ant][ant] is used.
The instructions below assume that you have added the `ol` bash/batch script to
your path (type `ol` and see usage docs to confirm this is set up).
[closure]: https://developers.google.com/closure/compiler/
[plovr]: http://plovr.com/
[ant]: http://ant.apache.org/
## Building an Application
To compile an application together with OpenLayers, you will provide a build
configuration file for the compiler. See the `demo` folder for example
configuration files (e.g. `map.json`).
Compile your application with the `build` command:
ol build path/to/config.json
Substitute the path to your build configuration file above.
## Building the API Docs
From within the root of the OpenLayers directory, use the `doc` command to build
the API docs:
ol doc
This will generate documentation in the `jsdoc` directory.
## Building the Hosted Library
To compile the full OpenLayers api, use the `build` command from the root of the
OpenLayers directory:
ol build
This will generate an `api.js` script in the same directory. (This is equivalent to `ol build path/to/ol/api.json`.)

65
bin/build.xml Normal file
View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="ol" default="usage">
<description>
OpenLayers Dev Utilities
</description>
<property name="ol.home" location=".."/>
<property name="plovr.jar" location="${ol.home}/bin/plovr.jar"/>
<property name="main.json" location="${ol.home}/main.json"/>
<property name="build.json" location="${ol.home}/api.json"/>
<target name="usage">
<echo>
Available commands:
serve - Run the library server
build - Builds a minified version of the library or an application
doc - Generate the reference docs
</echo>
</target>
<condition property="plovr.exists">
<available file="${plovr.jar}" type="file"/>
</condition>
<target name="deps" unless="plovr.exists">
<get src="http://plovr.googlecode.com/files/plovr-4b3caf2b7d84.jar"
dest="${plovr.jar}"/>
</target>
<target name="serve" depends="deps">
<java jar="${plovr.jar}" fork="true">
<arg value="serve"/>
<arg value="${main.json}"/>
</java>
</target>
<target name="checkpath">
<condition property="build.json.set">
<isset property="build.json"/>
</condition>
<fail message="Missing build config." unless="build.json.set"/>
<property name="build.json.fullpath" location="${build.json}"/>
<condition property="build.json.exists">
<available file="${build.json.fullpath}" type="file"/>
</condition>
</target>
<target name="build" depends="deps, checkpath">
<fail message="Build config '${build.json.fullpath}' doesn't exist." unless="build.json.exists"/>
<java jar="${plovr.jar}" fork="true">
<arg value="build"/>
<arg value="${build.json}"/>
</java>
</target>
<target name="doc" depends="deps">
<java jar="${plovr.jar}" fork="true">
<arg value="jsdoc"/>
<arg value="${main.json}"/>
</java>
</target>
</project>

44
bin/ol Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
ant -version &> /dev/null
if [ $? -ne 0 ]; then
echo 'Requires Apache Ant (see http://ant.apache.org/)'
exit 1
fi
NAME=$(basename -- "$0")
# find ol home
if [ -z "$0" ]; then
# as a last recourse, use the present working directory
OL_HOME=$(pwd)
else
# save original working directory
ORIG_PWD="$(pwd -P)"
# get the absolute path of the executable
SELF_PATH=$(
cd -P -- "$(dirname -- "$0")" \
&& pwd -P
) && SELF_PATH=$SELF_PATH/$(basename -- "$0")
# resolve symlinks
while [ -h "$SELF_PATH" ]; do
DIR=$(dirname -- "$SELF_PATH")
SYM=$(readlink -- "$SELF_PATH")
SELF_PATH=$(cd -- "$DIR" && cd -- $(dirname -- "$SYM") && pwd)/$(basename -- "$SYM")
done
OL_HOME=$(dirname -- "$(dirname -- "$SELF_PATH")")
# restore original working directory
cd "$ORIG_PWD"
fi
ANT_ARGS=""
if [ $# -gt 1 ]; then
ANT_ARGS=-Dbuild.json="$2"
fi
ant -e -f "$OL_HOME/bin/build.xml" -Dbasedir=. -Dol.home="$OL_HOME" $1 $ANT_ARGS

21
bin/ol.cmd Normal file
View File

@@ -0,0 +1,21 @@
@echo off
:: Check for ant on the path
call ant -version >NUL 2>NUL || (
echo Requires Apache Ant ^(see http://ant.apache.org/^)
exit /b 1
)
:: Find the full path of OL_HOME
pushd "%~dp0.."
set OL_HOME="%cd%"
popd
:: Run the command
set COMMAND="%~1"
if "%~1" == "" set COMMAND="usage"
set ANT_ARGS=
if "%~2" == "" set ANT_ARGS="-Dbuild.json=%~2"
ant -e -f %OL_HOME%\bin\build.xml -Dol.home=%OL_HOME% -Dbasedir=. %COMMAND% %ANT_ARGS%

View File

@@ -1,46 +0,0 @@
The OpenLayers build tool supports several different
forms of compressing your javascript code, and a method
of describing build profiles to create customized
OpenLayers builds with only the components you need.
When building a file, you can choose to build with several
different compression options to the Python-based build.py
script. The following is an example script:
python build.py -c closure full OpenLayers-closure.js
This script selects the 'closure' compression mechanism,
uses a config file called 'full.cfg', and writes the output
to OpenLayers-closure.js.
The options available for compression are:
* closure
This requires you to have a closure-compiler.jar in your
tools directory. You can do this by fetching the compiler
from:
http://closure-compiler.googlecode.com/files/compiler-latest.zip
Then unzipping that file, and placing compiler.jar into tools
and renaming it closure-compiler.jar.
* closure_ws
This uses the closure compiler webservice. This will only work
for files source Javascript files which are under 1MB. (Note that
the default OpenLayers full build is not under 1MB.)
* jsmin
jsmin is the default compiler, and uses the Python-based
jsmin script to compress the Javascript.
* minimize
This is a simple whitespace removing Python script, designed
to fill in when other tools are unavailable.
* none
None will leave the Javascript uncompressed.
For more information on the build script and custom build profiles,
see http://docs.openlayers.org/library/deploying.html

View File

@@ -1,158 +0,0 @@
#!/usr/bin/env python
import sys
import os
sys.path.append("../tools")
import mergejs
import optparse
def build(config_file = None, output_file = None, options = None):
have_compressor = []
try:
import jsmin
have_compressor.append("jsmin")
except ImportError:
print "No jsmin"
try:
# tools/closure_library_jscompiler.py from:
# http://code.google.com/p/closure-library/source/browse/trunk/closure/bin/build/jscompiler.py
import closure_library_jscompiler as closureCompiler
have_compressor.append("closure")
except Exception, E:
print "No closure (%s)" % E
try:
import closure_ws
have_compressor.append("closure_ws")
except ImportError:
print "No closure_ws"
try:
import minimize
have_compressor.append("minimize")
except ImportError:
print "No minimize"
try:
import uglify_js
uglify_js.check_available()
have_compressor.append("uglify-js")
except Exception, E:
print "No uglify-js (%s)" % E
use_compressor = None
if options.compressor and options.compressor in have_compressor:
use_compressor = options.compressor
sourceDirectory = "../lib"
configFilename = "full.cfg"
outputFilename = "OpenLayers.js"
if config_file:
configFilename = config_file
extension = configFilename[-4:]
if extension != ".cfg":
configFilename = config_file + ".cfg"
if output_file:
outputFilename = output_file
print "Merging libraries."
try:
if use_compressor == "closure" or use_compressor == 'uglify-js':
sourceFiles = mergejs.getNames(sourceDirectory, configFilename)
else:
merged = mergejs.run(sourceDirectory, None, configFilename)
except mergejs.MissingImport, E:
print "\nAbnormal termination."
sys.exit("ERROR: %s" % E)
if options.amdname:
options.amdname = "'" + options.amdname + "',"
else:
options.amdname = ""
if options.amd == 'pre':
print "\nAdding AMD function."
merged = "define(%sfunction(){%sreturn OpenLayers;});" % (options.amdname, merged)
print "Compressing using %s" % use_compressor
if use_compressor == "jsmin":
minimized = jsmin.jsmin(merged)
elif use_compressor == "minimize":
minimized = minimize.minimize(merged)
elif use_compressor == "closure_ws":
if len(merged) > 1000000: # The maximum file size for this web service is 1000 KB.
print "\nPre-compressing using jsmin"
merged = jsmin.jsmin(merged)
print "\nIs being compressed using Closure Compiler Service."
try:
minimized = closure_ws.minimize(merged)
except Exception, E:
print "\nAbnormal termination."
sys.exit("ERROR: Closure Compilation using Web service failed!\n%s" % E)
if len(minimized) <= 2:
print "\nAbnormal termination due to compilation errors."
sys.exit("ERROR: Closure Compilation using Web service failed!")
else:
print "Closure Compilation using Web service has completed successfully."
elif use_compressor == "closure":
jscompilerJar = "../tools/closure-compiler.jar"
if not os.path.isfile(jscompilerJar):
print "\nNo closure-compiler.jar; read README.txt!"
sys.exit("ERROR: Closure Compiler \"%s\" does not exist! Read README.txt" % jscompilerJar)
minimized = closureCompiler.Compile(
jscompilerJar,
sourceFiles, [
"--externs", "closure-compiler/Externs.js",
"--jscomp_warning", "checkVars", # To enable "undefinedVars"
"--jscomp_error", "checkRegExp", # Also necessary to enable "undefinedVars"
"--jscomp_error", "undefinedVars"
]
)
if minimized is None:
print "\nAbnormal termination due to compilation errors."
sys.exit("ERROR: Closure Compilation failed! See compilation errors.")
print "Closure Compilation has completed successfully."
elif use_compressor == "uglify-js":
minimized = uglify_js.compile(sourceFiles)
if minimized is None:
print "\nAbnormal termination due to compilation errors."
sys.exit("ERROR: Uglify JS compilation failed! See compilation errors.")
print "Uglify JS compilation has completed successfully."
else: # fallback
minimized = merged
if options.amd == 'post':
print "\nAdding AMD function."
minimized = "define(%sfunction(){%sreturn OpenLayers;});" % (options.amdname, minimized)
if options.status:
print "\nAdding status file."
minimized = "// status: " + file(options.status).read() + minimized
print "\nAdding license file."
minimized = file("license.txt").read() + minimized
print "Writing to %s." % outputFilename
file(outputFilename, "w").write(minimized)
print "Done."
if __name__ == '__main__':
opt = optparse.OptionParser(usage="%s [options] [config_file] [output_file]\n Default config_file is 'full.cfg', Default output_file is 'OpenLayers.js'")
opt.add_option("-c", "--compressor", dest="compressor", help="compression method: one of 'jsmin' (default), 'minimize', 'closure_ws', 'closure', or 'none'", default="jsmin")
opt.add_option("-s", "--status", dest="status", help="name of a file whose contents will be added as a comment at the front of the output file. For example, when building from a git repo, you can save the output of 'git describe --tags' in this file. Default is no file.", default=False)
opt.add_option("--amd", dest="amd", help="output should be AMD module; wrap merged files in define function; can be either 'pre' (before compilation) or 'post' (after compilation). Wrapping the OpenLayers var in a function means the filesize can be reduced by the closure compiler using 'pre', but be aware that a few functions depend on the OpenLayers variable being present. Either option can be used with jsmin or minimize compression. Default false, not AMD.", default=False)
opt.add_option("--amdname", dest="amdname", help="only useful with amd option. Name of AMD module. Default no name, anonymous module.", default=False)
(options, args) = opt.parse_args()
if not len(args):
build(options=options)
elif len(args) == 1:
build(args[0], options=options)
elif len(args) == 2:
build(args[0], args[1], options=options)
else:
print "Wrong number of arguments"

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env python
import sys
sys.path.append("../tools")
import jsmin, mergejs
sourceDirectory = "../lib"
configFilename = "full.cfg"
outputFilename = "OpenLayers.js"
if len(sys.argv) > 1:
configFilename = sys.argv[1] + ".cfg"
if len(sys.argv) > 2:
outputFilename = sys.argv[2]
print "Merging libraries."
merged = mergejs.run(sourceDirectory, None, configFilename)
print "Adding license file."
merged = file("license.txt").read() + merged
print "Writing to %s." % outputFilename
file(outputFilename, "w").write(merged)
print "Done."

View File

@@ -1,50 +0,0 @@
// ********************************************
// This source file serves *ONLY* to avoid some compilation errors when the
// compiler uses the flag:
// --jscomp_error undefinedVars
//
// In this source are declared all variables from other programs that use
// OpenLayers. This avoids the error of undefined variable for these names.
//
// NOTE: The compiler does not include externs files like this in the
// compilation result.
// ********************************************
// Used in lib/Firebug/firebug.js when gecko_dom
var frames;
// Check the console when using Firebug Lite
var console;
// Proj4js
var Proj4js = {Proj: function(){}};
// Check JSON in lib/OpenLayers/Format/JSON.js
var JSON = {};
// Google Maps
var GMap2;
var G_NORMAL_MAP;
var GEvent;
var GLatLngBounds = function(){};
var GSize = function(x, y){};
var GPoint = function(x, y){};
var GLatLng = function(lat, lon){};
// Multimap
var MultimapViewer = function(div){};
var MMLatLon = function(lat, lon){};
var MMPoint = function(x, y){};
//VirtualEarth
var VEMap = function(name){};
var VEPixel = function(x, y){};
var VELatLong = function(lat, lon){};
var Msn = {VE:{}};
// Yahoo
var YMap = function(div, type, size){};
var YGeoPoint = function(lat, lon){};
var YCoordPoint = function(x, y){};
var YSize = function(w, h){};

View File

@@ -1,14 +0,0 @@
# This is the full build with all files: this includes the vector-related files
# like Renderers and Formats.
[first]
[last]
[include]
[exclude]
Firebug
OpenLayers.js
OpenLayers/Lang
deprecated.js

View File

@@ -1,57 +0,0 @@
/*
OpenLayers.js -- OpenLayers Map Viewer Library
Copyright (c) 2006-2013 by OpenLayers Contributors
Published under the 2-clause BSD license.
See http://openlayers.org/dev/license.txt for the full text of the license, and http://openlayers.org/dev/authors.txt for full list of contributors.
Includes compressed code under the following licenses:
(For uncompressed versions of the code used, please see the
OpenLayers Github repository: <https://github.com/openlayers/openlayers>)
*/
/**
* Contains XMLHttpRequest.js <http://code.google.com/p/xmlhttprequest/>
* Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*/
/**
* OpenLayers.Util.pagePosition is based on Yahoo's getXY method, which is
* Copyright (c) 2006, Yahoo! Inc.
* All rights reserved.
*
* Redistribution and use of this software in source and binary forms, with or
* without modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Yahoo! Inc. nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission of Yahoo! Inc.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

View File

@@ -1,32 +0,0 @@
[first]
[last]
[include]
OpenLayers/Map.js
OpenLayers/Kinetic.js
OpenLayers/Projection.js
OpenLayers/Layer/Vector.js
OpenLayers/Layer/OSM.js
OpenLayers/Layer/Bing.js
OpenLayers/Layer/WMS.js
OpenLayers/Layer/Google/v3.js
OpenLayers/Popup/FramedCloud.js
OpenLayers/Control/Navigation.js
OpenLayers/Control/Zoom.js
OpenLayers/Control/Attribution.js
OpenLayers/Control/SelectFeature.js
OpenLayers/Control/Panel.js
OpenLayers/Control/LayerSwitcher.js
OpenLayers/Renderer/SVG.js
OpenLayers/Renderer/VML.js
OpenLayers/Format/GeoJSON.js
OpenLayers/Protocol/HTTP.js
OpenLayers/Strategy/Fixed.js
OpenLayers/Strategy/BBOX.js
OpenLayers/StyleMap.js
OpenLayers/Rule.js
OpenLayers/Filter/Comparison.js
OpenLayers/Filter/Logical.js
[exclude]

View File

@@ -1,17 +0,0 @@
# This file includes a small subset of OpenLayers code, designed to be
# integrated into another application. It includes only the Layer types
# neccesary to create tiled or untiled WMS, and does not include any Controls.
# This is the result of what was at the time called "Webmap.js" at the FOSS4G
# Web Mapping BOF.
[first]
[last]
[include]
OpenLayers/Map.js
OpenLayers/Layer/WMS.js
[exclude]

View File

@@ -1,36 +0,0 @@
[first]
[last]
[include]
OpenLayers/Map.js
OpenLayers/Kinetic.js
OpenLayers/Projection.js
OpenLayers/Layer/OSM.js
OpenLayers/Layer/Bing.js
OpenLayers/Layer/WMS.js
OpenLayers/Control/TouchNavigation.js
OpenLayers/Control/Geolocate.js
OpenLayers/Control/Zoom.js
OpenLayers/Control/Attribution.js
OpenLayers/Control/SelectFeature.js
OpenLayers/Control/DrawFeature.js
OpenLayers/Control/ModifyFeature.js
OpenLayers/Control/Panel.js
OpenLayers/Handler/Point.js
OpenLayers/Handler/Path.js
OpenLayers/Handler/Polygon.js
OpenLayers/Layer/Vector.js
OpenLayers/Renderer/SVG.js
OpenLayers/Renderer/Canvas.js
OpenLayers/Format/GeoJSON.js
OpenLayers/Format/KML.js
OpenLayers/Protocol/HTTP.js
OpenLayers/Protocol/WFS.js
OpenLayers/Protocol/WFS/v1_0_0.js
OpenLayers/Strategy/Fixed.js
OpenLayers/TileManager.js
[exclude]

View File

@@ -1,11 +0,0 @@
# This build config is supposed to be used for the units tests with "mode=build"
[first]
[last]
[include]
[exclude]
Firebug
OpenLayers.js

177
css/ol.css Normal file
View File

@@ -0,0 +1,177 @@
.ol-renderer-webgl-canvas { width:100%; height:100%; }
.olTile {
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
/**
* arrow implementation from http://cssarrowplease.com/ for ol-popup
*/
.ol-popup {
position: absolute;
background: #88b7d5;
border: 4px solid #c2e1f5;
}
/**
* FIXME
*/
.ol-popup-close {
background: url("img/close.gif") no-repeat;
cursor: pointer;
position: absolute;
width: 17px;
height: 17px;
right: 0;
}
.ol-popup-top {}
.ol-popup-top:after, .ol-popup-top:before {
bottom: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup-top:after {
border-bottom-color: #88b7d5;
border-width: 30px;
left: 50%;
margin-left: -30px;
}
.ol-popup-top:before {
border-bottom-color: #c2e1f5;
border-width: 36px;
left: 50%;
margin-left: -36px;
}
.ol-popup-bottom {}
.ol-popup-bottom:after, .ol-popup-bottom:before {
top: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup-bottom:after {
border-top-color: #88b7d5;
border-width: 30px;
left: 50%;
margin-left: -30px;
}
.ol-popup-bottom:before {
border-top-color: #c2e1f5;
border-width: 36px;
left: 50%;
margin-left: -36px;
}
.ol-popup-right {}
.ol-popup-right:after, .ol-popup-right:before {
left: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup-right:after {
border-left-color: #88b7d5;
border-width: 30px;
top: 50%;
margin-top: -30px;
}
.ol-popup-right:before {
border-left-color: #c2e1f5;
border-width: 36px;
top: 50%;
margin-top: -36px;
}
.ol-popup-left {}
.ol-popup-left:after, .ol-popup-left:before {
right: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup-left:after {
border-right-color: #88b7d5;
border-width: 30px;
top: 50%;
margin-top: -30px;
}
.ol-popup-left:before {
border-right-color: #c2e1f5;
border-width: 36px;
top: 50%;
margin-top: -36px;
}
.ol-control-zoom {
position: absolute;
top: 8px;
left: 8px;
background: rgba(255,255,255,0.4);
border-radius: 4px;
padding: 2px;
}
.ol-control-zoom a {
display: block;
margin: 1px;
padding: 0;
color: white;
font-size: 18px;
font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
font-weight: bold;
text-decoration: none;
text-align: center;
height: 22px;
width:22px;
line-height: 19px;
background: #130085; /* fallback for IE - IE6 requires background shorthand*/
background: rgba(0, 60, 136, 0.5);
filter: alpha(opacity=80);
}
.ol-control-zoom a:hover {
background: #130085; /* fallback for IE */
background: rgba(0, 60, 136, 0.7);
filter: alpha(opacity=100);
}
@media only screen and (max-width: 600px) {
.ol-control-zoom a:hover {
background: rgba(0, 60, 136, 0.5);
}
}
.ol-control-zoom-in {
border-radius: 4px 4px 0 0;
}
.ol-control-zoom-out {
border-radius: 0 0 4px 4px;
}
.ol-control-attribution {
position: absolute;
font-size: 10px;
text-align: right;
color: #eeeeee;
bottom: 0;
right: 0;
background: #130085; /* fallback for IE - IE6 requires background shorthand*/
background: rgba(0, 60, 136, 0.3);
filter: alpha(opacity=30);
font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
padding: 2px 4px;
}
.ol-control-attribution a {
color: white;
text-decoration: none;
}

26
demo/hello-api.html Normal file
View File

@@ -0,0 +1,26 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>OL3 Hello World</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<script src="../api.js"></script>
<style type="text/css" media="screen">
html, body, #map { width: 100%; height: 100%; border: 0; margin:0; }
</style>
<script type="text/javascript" charset="utf-8">
var map;
function init() {
map = ol.map()
.renderTo('map')
.layers([ol.layer.osm()])
.center([45, 5])
.zoom(10);
}
</script>
</head>
<body onload="init()">
<div id="map"></div>
</body>
</html>

15
demo/hello-compiled.html Normal file
View File

@@ -0,0 +1,15 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>OL3 Hello World</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<script src="hello-compiled.js"></script>
<style type="text/css" media="screen">
html, body, #map { width: 100%; height: 100%; border: 0; margin:0; }
</style>
</head>
<body onload="init()">
<div id="map"></div>
</body>
</html>

42
demo/hello-compiled.json Normal file
View File

@@ -0,0 +1,42 @@
{
"id": "hello",
"output-file": "hello-compiled.js",
"inputs": [
"hello.js",
"../src/ol.js"
],
"paths": [
"../src"
],
"define": {
// "goog.dom.ASSUME_STANDARDS_MODE": true,
"goog.DEBUG": false
},
"mode": "ADVANCED",
"level": "VERBOSE",
// "pretty-print": true,
// "debug": true,
// "experimental-compiler-options": {
// "generateExports": true
// },
"checks": {
// acceptable values are "ERROR", "WARNING", and "OFF"
"accessControls": "WARNING",
"visibility": "WARNING",
"checkTypes": "WARNING",
"checkRegExp": "WARNING",
"checkVars": "WARNING",
"deprecated": "WARNING",
"fileoverviewTags": "WARNING",
"invalidCasts": "WARNING",
"missingProperties": "WARNING",
"nonStandardJsDocs": "WARNING",
"undefinedVars": "WARNING"
}
}

View File

@@ -0,0 +1,42 @@
{
"id": "hello-epi",
"output-file": "hello-epi-compiled.js",
"inputs": [
"hello-epi.js"
],
"paths": [
"../src"
],
"define": {
// "goog.dom.ASSUME_STANDARDS_MODE": true,
"goog.DEBUG": false
},
"mode": "ADVANCED",
"level": "VERBOSE",
// "pretty-print": true,
// "debug": true,
// "experimental-compiler-options": {
// "generateExports": true
// },
"checks": {
// acceptable values are "ERROR", "WARNING", and "OFF"
"accessControls": "WARNING",
"visibility": "WARNING",
"checkTypes": "WARNING",
"checkRegExp": "WARNING",
"checkVars": "WARNING",
"deprecated": "WARNING",
"fileoverviewTags": "WARNING",
"invalidCasts": "WARNING",
"missingProperties": "WARNING",
"nonStandardJsDocs": "WARNING",
"undefinedVars": "WARNING"
}
}

16
demo/hello-epi.js Normal file
View File

@@ -0,0 +1,16 @@
/* This is a code which is going to be compiled together with the library */
goog.require('ol.Map');
goog.require('ol.layer.OSM');
goog.require('ol.Loc');
goog.require('goog.dom');
function init() {
var map = new ol.Map();
map.setContainer(goog.dom.getElement('map'));
map.setLayers( [ new ol.layer.OSM() ] );
map.setCenter( new ol.Loc(45, 5));
map.setZoom(10);
}
window['init'] = init;

10
demo/hello.js Normal file
View File

@@ -0,0 +1,10 @@
/* This is a code which is going to be compiled together with the library */
function init() {
var map = ol.map()
.renderTo('map')
.layers([ol.layer.osm()])
.center([45, 5])
.zoom(10);
}
window['init'] = init;

7
demo/loader.js Normal file
View File

@@ -0,0 +1,7 @@
/**
Adds the plovr generated script to the document.
*/
(function() {
var url = "http://" + window.location.hostname + ":9810/compile?id=ol";
document.write("<script type='text/javascript' src='" + url + "'></script>");
})();

17
demo/map.html Normal file
View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<title>OL3 Map</title>
<script type="text/javascript" src="loader.js"></script>
<link rel="stylesheet" href="../css/ol.css" type="text/css">
<style type="text/css">
#map {
width: 512px; height: 350px;
}
</style>
</head>
<body>
</body>
<div id="map"></div>
<script type="text/javascript" src="map.js"></script>
</html>

6
demo/map.js Normal file
View File

@@ -0,0 +1,6 @@
var map = ol.map({
renderTo: 'map',
layers: [ol.layer.osm()],
center: [0, 0],
zoom: 1
});

39
demo/map.json Normal file
View File

@@ -0,0 +1,39 @@
/**
* Build configuration for the map.js example. Use following syntax:
*
* ol build map.json
*
* The output will be named map-compiled.js.
*/
{
"id": "hello",
"output-file": "map-compiled.js",
"inputs": ["../src/ol.js", "map.js"],
"paths": ["../src"],
"define": {
"goog.DEBUG": false
},
"mode": "ADVANCED",
"level": "VERBOSE",
// acceptable values are "ERROR", "WARNING", and "OFF"
"checks": {
"accessControls": "WARNING",
"visibility": "WARNING",
"checkTypes": "WARNING",
"checkRegExp": "WARNING",
"checkVars": "WARNING",
"deprecated": "WARNING",
"fileoverviewTags": "WARNING",
"invalidCasts": "WARNING",
"missingProperties": "WARNING",
"nonStandardJsDocs": "WARNING",
"undefinedVars": "WARNING"
}
}

View File

@@ -1,113 +0,0 @@
Format: 1.52
# This is the Natural Docs languages file for this project. If you change
# anything here, it will apply to THIS PROJECT ONLY. If you'd like to change
# something for all your projects, edit the Languages.txt in Natural Docs'
# Config directory instead.
# You can prevent certain file extensions from being scanned like this:
# Ignore Extensions: [extension] [extension] ...
#-------------------------------------------------------------------------------
# SYNTAX:
#
# Unlike other Natural Docs configuration files, in this file all comments
# MUST be alone on a line. Some languages deal with the # character, so you
# cannot put comments on the same line as content.
#
# Also, all lists are separated with spaces, not commas, again because some
# languages may need to use them.
#
# Language: [name]
# Alter Language: [name]
# Defines a new language or alters an existing one. Its name can use any
# characters. If any of the properties below have an add/replace form, you
# must use that when using Alter Language.
#
# The language Shebang Script is special. It's entry is only used for
# extensions, and files with those extensions have their shebang (#!) lines
# read to determine the real language of the file. Extensionless files are
# always treated this way.
#
# The language Text File is also special. It's treated as one big comment
# so you can put Natural Docs content in them without special symbols. Also,
# if you don't specify a package separator, ignored prefixes, or enum value
# behavior, it will copy those settings from the language that is used most
# in the source tree.
#
# Extensions: [extension] [extension] ...
# [Add/Replace] Extensions: [extension] [extension] ...
# Defines the file extensions of the language's source files. You can
# redefine extensions found in the main languages file. You can use * to
# mean any undefined extension.
#
# Shebang Strings: [string] [string] ...
# [Add/Replace] Shebang Strings: [string] [string] ...
# Defines a list of strings that can appear in the shebang (#!) line to
# designate that it's part of the language. You can redefine strings found
# in the main languages file.
#
# Ignore Prefixes in Index: [prefix] [prefix] ...
# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
#
# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
# Specifies prefixes that should be ignored when sorting symbols in an
# index. Can be specified in general or for a specific topic type.
#
#------------------------------------------------------------------------------
# For basic language support only:
#
# Line Comments: [symbol] [symbol] ...
# Defines a space-separated list of symbols that are used for line comments,
# if any.
#
# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
# Defines a space-separated list of symbol pairs that are used for block
# comments, if any.
#
# Package Separator: [symbol]
# Defines the default package separator symbol. The default is a dot.
#
# [Topic Type] Prototype Enders: [symbol] [symbol] ...
# When defined, Natural Docs will attempt to get a prototype from the code
# immediately following the topic type. It stops when it reaches one of
# these symbols. Use \n for line breaks.
#
# Line Extender: [symbol]
# Defines the symbol that allows a prototype to span multiple lines if
# normally a line break would end it.
#
# Enum Values: [global|under type|under parent]
# Defines how enum values are referenced. The default is global.
# global - Values are always global, referenced as 'value'.
# under type - Values are under the enum type, referenced as
# 'package.enum.value'.
# under parent - Values are under the enum's parent, referenced as
# 'package.value'.
#
# Perl Package: [perl package]
# Specifies the Perl package used to fine-tune the language behavior in ways
# too complex to do in this file.
#
#------------------------------------------------------------------------------
# For full language support only:
#
# Full Language Support: [perl package]
# Specifies the Perl package that has the parsing routines necessary for full
# language support.
#
#-------------------------------------------------------------------------------
# The following languages are defined in the main file, if you'd like to alter
# them:
#
# Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
# PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
# ActionScript, ColdFusion, R, Fortran
# If you add a language that you think would be useful to other developers
# and should be included in Natural Docs by default, please e-mail it to
# languages [at] naturaldocs [dot] org.

View File

@@ -1,473 +0,0 @@
Format: 1.52
Title: OpenLayers
SubTitle: JavaScript Mapping Library
# You can add a footer to your documentation like this:
# Footer: [text]
# If you want to add a copyright notice, this would be the place to do it.
# You can add a timestamp to your documentation like one of these:
# Timestamp: Generated on month day, year
# Timestamp: Updated mm/dd/yyyy
# Timestamp: Last updated mon day
#
# m - One or two digit month. January is "1"
# mm - Always two digit month. January is "01"
# mon - Short month word. January is "Jan"
# month - Long month word. January is "January"
# d - One or two digit day. 1 is "1"
# dd - Always two digit day. 1 is "01"
# day - Day with letter extension. 1 is "1st"
# yy - Two digit year. 2006 is "06"
# yyyy - Four digit year. 2006 is "2006"
# year - Four digit year. 2006 is "2006"
# --------------------------------------------------------------------------
#
# Cut and paste the lines below to change the order in which your files
# appear on the menu. Don't worry about adding or removing files, Natural
# Docs will take care of that.
#
# You can further organize the menu by grouping the entries. Add a
# "Group: [name] {" line to start a group, and add a "}" to end it.
#
# You can add text and web links to the menu by adding "Text: [text]" and
# "Link: [name] ([URL])" lines, respectively.
#
# The formatting and comments are auto-generated, so don't worry about
# neatness when editing the file. Natural Docs will clean it up the next
# time it is run. When working with groups, just deal with the braces and
# forget about the indentation and comments.
#
# --------------------------------------------------------------------------
Group: OpenLayers {
File: OpenLayers (no auto-title, OpenLayers.js)
Group: BaseTypes {
File: Base Types (no auto-title, OpenLayers/BaseTypes.js)
File: Bounds (no auto-title, OpenLayers/BaseTypes/Bounds.js)
File: Class (no auto-title, OpenLayers/BaseTypes/Class.js)
File: Date (no auto-title, OpenLayers/BaseTypes/Date.js)
File: Element (no auto-title, OpenLayers/BaseTypes/Element.js)
File: LonLat (no auto-title, OpenLayers/BaseTypes/LonLat.js)
File: Pixel (no auto-title, OpenLayers/BaseTypes/Pixel.js)
File: Size (no auto-title, OpenLayers/BaseTypes/Size.js)
} # Group: BaseTypes
File: Console (no auto-title, OpenLayers/Console.js)
Group: Control {
File: Control (no auto-title, OpenLayers/Control.js)
File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js)
File: Attribution (no auto-title, OpenLayers/Control/Attribution.js)
File: Button (no auto-title, OpenLayers/Control/Button.js)
File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js)
File: DragPan (no auto-title, OpenLayers/Control/DragPan.js)
File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js)
File: EditingToolbar (no auto-title, OpenLayers/Control/EditingToolbar.js)
File: Geolocate (no auto-title, OpenLayers/Control/Geolocate.js)
File: GetFeature (no auto-title, OpenLayers/Control/GetFeature.js)
File: Graticule (no auto-title, OpenLayers/Control/Graticule.js)
File: KeyboardDefaults (no auto-title, OpenLayers/Control/KeyboardDefaults.js)
File: LayerSwitcher (no auto-title, OpenLayers/Control/LayerSwitcher.js)
File: Measure (no auto-title, OpenLayers/Control/Measure.js)
File: ModifyFeature (no auto-title, OpenLayers/Control/ModifyFeature.js)
File: MousePosition (no auto-title, OpenLayers/Control/MousePosition.js)
File: Navigation (no auto-title, OpenLayers/Control/Navigation.js)
File: NavigationHistory (no auto-title, OpenLayers/Control/NavigationHistory.js)
File: NavToolbar (no auto-title, OpenLayers/Control/NavToolbar.js)
File: OverviewMap (no auto-title, OpenLayers/Control/OverviewMap.js)
File: Pan (no auto-title, OpenLayers/Control/Pan.js)
File: Panel (no auto-title, OpenLayers/Control/Panel.js)
File: PanPanel (no auto-title, OpenLayers/Control/PanPanel.js)
File: PanZoom (no auto-title, OpenLayers/Control/PanZoom.js)
File: PanZoomBar (no auto-title, OpenLayers/Control/PanZoomBar.js)
File: Permalink (no auto-title, OpenLayers/Control/Permalink.js)
File: PinchZoom (no auto-title, OpenLayers/Control/PinchZoom.js)
File: Scale (no auto-title, OpenLayers/Control/Scale.js)
File: ScaleLine (no auto-title, OpenLayers/Control/ScaleLine.js)
File: SelectFeature (no auto-title, OpenLayers/Control/SelectFeature.js)
File: SLDSelect (no auto-title, OpenLayers/Control/SLDSelect.js)
File: Snapping (no auto-title, OpenLayers/Control/Snapping.js)
File: Split (no auto-title, OpenLayers/Control/Split.js)
File: TouchNavigation (no auto-title, OpenLayers/Control/TouchNavigation.js)
File: TransformFeature (no auto-title, OpenLayers/Control/TransformFeature.js)
File: WMSGetFeatureInfo (no auto-title, OpenLayers/Control/WMSGetFeatureInfo.js)
File: WMTSGetFeatureInfo (no auto-title, OpenLayers/Control/WMTSGetFeatureInfo.js)
File: ZoomBox (no auto-title, OpenLayers/Control/ZoomBox.js)
File: ZoomIn (no auto-title, OpenLayers/Control/ZoomIn.js)
File: ZoomOut (no auto-title, OpenLayers/Control/ZoomOut.js)
File: ZoomPanel (no auto-title, OpenLayers/Control/ZoomPanel.js)
File: ZoomToMaxExtent (no auto-title, OpenLayers/Control/ZoomToMaxExtent.js)
} # Group: Control
File: Events (no auto-title, OpenLayers/Events.js)
Group: Feature {
File: Feature (no auto-title, OpenLayers/Feature.js)
File: Vector (no auto-title, OpenLayers/Feature/Vector.js)
} # Group: Feature
Group: Filter {
File: Filter (no auto-title, OpenLayers/Filter.js)
File: Comparison (no auto-title, OpenLayers/Filter/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Filter/FeatureId.js)
File: Function (no auto-title, OpenLayers/Filter/Function.js)
File: Logical (no auto-title, OpenLayers/Filter/Logical.js)
File: Spatial (no auto-title, OpenLayers/Filter/Spatial.js)
} # Group: Filter
Group: Format {
File: Format (no auto-title, OpenLayers/Format.js)
File: ArcXML (no auto-title, OpenLayers/Format/ArcXML.js)
File: ArcXML.Features (no auto-title, OpenLayers/Format/ArcXML/Features.js)
File: Atom (no auto-title, OpenLayers/Format/Atom.js)
File: Context (no auto-title, OpenLayers/Format/Context.js)
File: CQL (no auto-title, OpenLayers/Format/CQL.js)
File: CSWGetDomain (no auto-title, OpenLayers/Format/CSWGetDomain.js)
File: CSWGetDomain.v2_0_2 (no auto-title, OpenLayers/Format/CSWGetDomain/v2_0_2.js)
File: CSWGetRecords (no auto-title, OpenLayers/Format/CSWGetRecords.js)
File: CSWGetRecords.v2_0_2 (no auto-title, OpenLayers/Format/CSWGetRecords/v2_0_2.js)
Group: Filter {
File: Filter (no auto-title, OpenLayers/Format/Filter.js)
File: v1 (no auto-title, OpenLayers/Format/Filter/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/Filter/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/Filter/v1_1_0.js)
} # Group: Filter
Group: GML {
File: GML (no auto-title, OpenLayers/Format/GML.js)
File: Base (no auto-title, OpenLayers/Format/GML/Base.js)
File: v2 (no auto-title, OpenLayers/Format/GML/v2.js)
File: v3 (no auto-title, OpenLayers/Format/GML/v3.js)
} # Group: GML
Group: SLD {
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
File: v1 (no auto-title, OpenLayers/Format/SLD/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/SLD/v1_0_0.js)
} # Group: SLD
File: GeoJSON (no auto-title, OpenLayers/Format/GeoJSON.js)
File: GeoRSS (no auto-title, OpenLayers/Format/GeoRSS.js)
File: GPX (no auto-title, OpenLayers/Format/GPX.js)
File: JSON (no auto-title, OpenLayers/Format/JSON.js)
File: KML (no auto-title, OpenLayers/Format/KML.js)
File: OGCExceptionReport (no auto-title, OpenLayers/Format/OGCExceptionReport.js)
File: OSM (no auto-title, OpenLayers/Format/OSM.js)
Group: OWSCommon {
File: OWSCommon (no auto-title, OpenLayers/Format/OWSCommon.js)
File: v1 (no auto-title, OpenLayers/Format/OWSCommon/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/OWSCommon/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/OWSCommon/v1_1_0.js)
} # Group: OWSCommon
File: OWSContext (no auto-title, OpenLayers/Format/OWSContext.js)
File: OWSContext.v0_3_1 (no auto-title, OpenLayers/Format/OWSContext/v0_3_1.js)
File: QueryStringFilter (no auto-title, OpenLayers/Format/QueryStringFilter.js)
File: SOSCapabilities (no auto-title, OpenLayers/Format/SOSCapabilities.js)
File: SOSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/SOSCapabilities/v1_0_0.js)
File: SOSGetFeatureOfInterest (no auto-title, OpenLayers/Format/SOSGetFeatureOfInterest.js)
File: SOSGetObservation (no auto-title, OpenLayers/Format/SOSGetObservation.js)
File: Text (no auto-title, OpenLayers/Format/Text.js)
File: VersionedOGC (OpenLayers/Format/XML/VersionedOGC.js)
File: WCSGetCoverage version 1.1.0 (no auto-title, OpenLayers/Format/WCSGetCoverage.js)
File: WFS (no auto-title, OpenLayers/Format/WFS.js)
Group: WFSCapabilities {
File: WFSCapabilities (no auto-title, OpenLayers/Format/WFSCapabilities.js)
File: v1 (no auto-title, OpenLayers/Format/WFSCapabilities/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WFSCapabilities/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WFSCapabilities/v1_1_0.js)
} # Group: WFSCapabilities
Group: WFST {
File: WFST (no auto-title, OpenLayers/Format/WFST.js)
File: v1 (no auto-title, OpenLayers/Format/WFST/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WFST/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WFST/v1_1_0.js)
} # Group: WFST
Group: WMC {
File: WMC (no auto-title, OpenLayers/Format/WMC.js)
File: v1 (no auto-title, OpenLayers/Format/WMC/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/WMC/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js)
} # Group: WMC
Group: WMSCapabilities {
File: WMSCapabilities (no auto-title, OpenLayers/Format/WMSCapabilities.js)
File: v1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1.js)
File: v1_1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1.js)
File: v1_1_0 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_0.js)
File: v1_1_1 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1.js)
File: v1_3 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3.js)
File: v1_3_0 (no auto-title, OpenLayers/Format/WMSCapabilities/v1_3_0.js)
File: WMSCapabilities/v1_1_1_WMSC (no auto-title, OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js)
} # Group: WMSCapabilities
Group: WMSDescribeLayer {
File: WMSDescribeLayer (no auto-title, OpenLayers/Format/WMSDescribeLayer.js)
File: v1_1 (no auto-title, OpenLayers/Format/WMSDescribeLayer/v1_1.js)
} # Group: WMSDescribeLayer
File: WFSDescribeFeatureType (no auto-title, OpenLayers/Format/WFSDescribeFeatureType.js)
File: WKT (no auto-title, OpenLayers/Format/WKT.js)
File: WMSGetFeatureInfo (no auto-title, OpenLayers/Format/WMSGetFeatureInfo.js)
File: WMTSCapabilities (no auto-title, OpenLayers/Format/WMTSCapabilities.js)
File: WMTSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/WMTSCapabilities/v1_0_0.js)
File: WPSCapabilities (no auto-title, OpenLayers/Format/WPSCapabilities.js)
File: WPSCapabilities.v1_0_0 (no auto-title, OpenLayers/Format/WPSCapabilities/v1_0_0.js)
File: WPSDescribeProcess (no auto-title, OpenLayers/Format/WPSDescribeProcess.js)
File: WPSExecute version 1.0.0 (no auto-title, OpenLayers/Format/WPSExecute.js)
File: XLS (no auto-title, OpenLayers/Format/XLS.js)
File: XLS.v1 (no auto-title, OpenLayers/Format/XLS/v1.js)
File: XLS.v1_1_0 (no auto-title, OpenLayers/Format/XLS/v1_1_0.js)
File: XML (no auto-title, OpenLayers/Format/XML.js)
} # Group: Format
Group: Geometry {
File: Geometry (no auto-title, OpenLayers/Geometry.js)
File: Collection (no auto-title, OpenLayers/Geometry/Collection.js)
File: Curve (no auto-title, OpenLayers/Geometry/Curve.js)
File: LinearRing (no auto-title, OpenLayers/Geometry/LinearRing.js)
File: LineString (no auto-title, OpenLayers/Geometry/LineString.js)
File: MultiLineString (no auto-title, OpenLayers/Geometry/MultiLineString.js)
File: MultiPoint (no auto-title, OpenLayers/Geometry/MultiPoint.js)
File: MultiPolygon (no auto-title, OpenLayers/Geometry/MultiPolygon.js)
File: Point (no auto-title, OpenLayers/Geometry/Point.js)
File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js)
} # Group: Geometry
Group: Handler {
File: Handler (no auto-title, OpenLayers/Handler.js)
File: Box (no auto-title, OpenLayers/Handler/Box.js)
File: Click (no auto-title, OpenLayers/Handler/Click.js)
File: Drag (no auto-title, OpenLayers/Handler/Drag.js)
File: Feature (no auto-title, OpenLayers/Handler/Feature.js)
File: Hover (no auto-title, OpenLayers/Handler/Hover.js)
File: Keyboard (no auto-title, OpenLayers/Handler/Keyboard.js)
File: MouseWheel (no auto-title, OpenLayers/Handler/MouseWheel.js)
File: Path (no auto-title, OpenLayers/Handler/Path.js)
File: Pinch (no auto-title, OpenLayers/Handler/Pinch.js)
File: Point (no auto-title, OpenLayers/Handler/Point.js)
File: Polygon (no auto-title, OpenLayers/Handler/Polygon.js)
File: RegularPolygon (no auto-title, OpenLayers/Handler/RegularPolygon.js)
} # Group: Handler
File: Icon (no auto-title, OpenLayers/Icon.js)
File: Kinetic (no auto-title, OpenLayers/Kinetic.js)
Group: Lang {
File: Lang (no auto-title, OpenLayers/Lang.js)
File: ar (no auto-title, OpenLayers/Lang/ar.js)
File: be-tarask (no auto-title, OpenLayers/Lang/be-tarask.js)
File: bg (no auto-title, OpenLayers/Lang/bg.js)
File: br (no auto-title, OpenLayers/Lang/br.js)
File: ca (no auto-title, OpenLayers/Lang/ca.js)
File: cs-CZ (no auto-title, OpenLayers/Lang/cs-CZ.js)
File: da-DK (no auto-title, OpenLayers/Lang/da-DK.js)
File: de (no auto-title, OpenLayers/Lang/de.js)
File: en (no auto-title, OpenLayers/Lang/en.js)
File: en-CA (no auto-title, OpenLayers/Lang/en-CA.js)
File: es (no auto-title, OpenLayers/Lang/es.js)
File: el (no auto-title, OpenLayers/Lang/el.js)
File: fi (no auto-title, OpenLayers/Lang/fi.js)
File: fr (no auto-title, OpenLayers/Lang/fr.js)
File: fur (no auto-title, OpenLayers/Lang/fur.js)
File: gl (no auto-title, OpenLayers/Lang/gl.js)
File: gsw (no auto-title, OpenLayers/Lang/gsw.js)
File: hr (no auto-title, OpenLayers/Lang/hr.js)
File: hsb (no auto-title, OpenLayers/Lang/hsb.js)
File: hu (no auto-title, OpenLayers/Lang/hu.js)
File: ia (no auto-title, OpenLayers/Lang/ia.js)
File: id (no auto-title, OpenLayers/Lang/id.js)
File: io (no auto-title, OpenLayers/Lang/io.js)
File: is (no auto-title, OpenLayers/Lang/is.js)
File: it (no auto-title, OpenLayers/Lang/it.js)
File: ja (no auto-title, OpenLayers/Lang/ja.js)
File: km (no auto-title, OpenLayers/Lang/km.js)
File: ksh (no auto-title, OpenLayers/Lang/ksh.js)
File: lt (no auto-title, OpenLayers/Lang/lt.js)
File: nds (no auto-title, OpenLayers/Lang/nds.js)
File: nb (no auto-title, OpenLayers/Lang/nb.js)
File: nl (no auto-title, OpenLayers/Lang/nl.js)
File: nn (no auto-title, OpenLayers/Lang/nn.js)
File: oc (no auto-title, OpenLayers/Lang/oc.js)
File: pl (no auto-title, OpenLayers/Lang/pl.js)
File: pt (no auto-title, OpenLayers/Lang/pt.js)
File: pt-BR (no auto-title, OpenLayers/Lang/pt-BR.js)
File: ru (no auto-title, OpenLayers/Lang/ru.js)
File: sk (no auto-title, OpenLayers/Lang/sk.js)
File: sv-SE (no auto-title, OpenLayers/Lang/sv-SE.js)
File: te (no auto-title, OpenLayers/Lang/te.js)
File: vi (no auto-title, OpenLayers/Lang/vi.js)
File: zh-CN (no auto-title, OpenLayers/Lang/zh-CN.js)
File: zh-TW (no auto-title, OpenLayers/Lang/zh-TW.js)
} # Group: Lang
Group: Layer {
File: Layer (no auto-title, OpenLayers/Layer.js)
File: ArcGISCache.js (no auto-title, OpenLayers/Layer/ArcGISCache.js)
File: ArcGIS93Rest (no auto-title, OpenLayers/Layer/ArcGIS93Rest.js)
File: ArcIMS (no auto-title, OpenLayers/Layer/ArcIMS.js)
File: Bing (no auto-title, OpenLayers/Layer/Bing.js)
File: Boxes (no auto-title, OpenLayers/Layer/Boxes.js)
File: EventPane (no auto-title, OpenLayers/Layer/EventPane.js)
File: FixedZoomLevels (no auto-title, OpenLayers/Layer/FixedZoomLevels.js)
File: GeoRSS (no auto-title, OpenLayers/Layer/GeoRSS.js)
File: Google (no auto-title, OpenLayers/Layer/Google.js)
File: Google.v3 (no auto-title, OpenLayers/Layer/Google/v3.js)
File: Grid (no auto-title, OpenLayers/Layer/Grid.js)
File: HTTPRequest (no auto-title, OpenLayers/Layer/HTTPRequest.js)
File: Image (no auto-title, OpenLayers/Layer/Image.js)
File: KaMap (no auto-title, OpenLayers/Layer/KaMap.js)
File: KaMapCache (no auto-title, OpenLayers/Layer/KaMapCache.js)
File: MapGuide (no auto-title, OpenLayers/Layer/MapGuide.js)
File: MapServer (no auto-title, OpenLayers/Layer/MapServer.js)
File: Markers (no auto-title, OpenLayers/Layer/Markers.js)
File: PointGrid (no auto-title, OpenLayers/Layer/PointGrid.js)
File: PointTrack (no auto-title, OpenLayers/Layer/PointTrack.js)
File: SphericalMercator (no auto-title, OpenLayers/Layer/SphericalMercator.js)
File: Text (no auto-title, OpenLayers/Layer/Text.js)
File: TileCache (no auto-title, OpenLayers/Layer/TileCache.js)
File: TMS (no auto-title, OpenLayers/Layer/TMS.js)
File: Vector (no auto-title, OpenLayers/Layer/Vector.js)
File: Vector.RootContainer (no auto-title, OpenLayers/Layer/Vector/RootContainer.js)
File: WMS (no auto-title, OpenLayers/Layer/WMS.js)
File: WMTS (no auto-title, OpenLayers/Layer/WMTS.js)
File: WorldWind (no auto-title, OpenLayers/Layer/WorldWind.js)
File: XYZ (no auto-title, OpenLayers/Layer/XYZ.js)
File: Zoomify (no auto-title, OpenLayers/Layer/Zoomify.js)
} # Group: Layer
File: Map (no auto-title, OpenLayers/Map.js)
Group: Marker {
File: Marker (no auto-title, OpenLayers/Marker.js)
File: Box (no auto-title, OpenLayers/Marker/Box.js)
} # Group: Marker
Group: Popup {
File: Popup (no auto-title, OpenLayers/Popup.js)
File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js)
File: Framed (no auto-title, OpenLayers/Popup/Framed.js)
File: FramedCloud (no auto-title, OpenLayers/Popup/FramedCloud.js)
} # Group: Popup
File: Projection (no auto-title, OpenLayers/Projection.js)
Group: Protocol {
File: Protocol (no auto-title, OpenLayers/Protocol.js)
File: HTTP (no auto-title, OpenLayers/Protocol/HTTP.js)
Group: WFS {
File: WFS (no auto-title, OpenLayers/Protocol/WFS.js)
File: v1 (no auto-title, OpenLayers/Protocol/WFS/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Protocol/WFS/v1_0_0.js)
File: v1_1_0 (no auto-title, OpenLayers/Protocol/WFS/v1_1_0.js)
} # Group: WFS
File: Script (no auto-title, OpenLayers/Protocol/Script.js)
File: SOS.DEFAULTS (no auto-title, OpenLayers/Protocol/SOS.js)
File: SOS.v1_0_0 (no auto-title, OpenLayers/Protocol/SOS/v1_0_0.js)
} # Group: Protocol
Group: Renderer {
File: Renderer (no auto-title, OpenLayers/Renderer.js)
File: Canvas (no auto-title, OpenLayers/Renderer/Canvas.js)
File: ElementsIndexer (no auto-title, OpenLayers/Renderer/Elements.js)
File: SVG (no auto-title, OpenLayers/Renderer/SVG.js)
File: VML (no auto-title, OpenLayers/Renderer/VML.js)
} # Group: Renderer
Group: Request {
File: Request (no auto-title, OpenLayers/Request.js)
File: XMLHttpRequest (no auto-title, OpenLayers/Request/XMLHttpRequest.js)
} # Group: Request
File: Rule (no auto-title, OpenLayers/Rule.js)
File: SingleFile.js (no auto-title, OpenLayers/SingleFile.js)
Group: Strategy {
File: Strategy (no auto-title, OpenLayers/Strategy.js)
File: BBOX (no auto-title, OpenLayers/Strategy/BBOX.js)
File: Cluster (no auto-title, OpenLayers/Strategy/Cluster.js)
File: Filter (no auto-title, OpenLayers/Strategy/Filter.js)
File: Fixed (no auto-title, OpenLayers/Strategy/Fixed.js)
File: Paging (no auto-title, OpenLayers/Strategy/Paging.js)
File: Refresh (no auto-title, OpenLayers/Strategy/Refresh.js)
File: Save (no auto-title, OpenLayers/Strategy/Save.js)
} # Group: Strategy
File: Style (no auto-title, OpenLayers/Style.js)
File: Style2 (no auto-title, OpenLayers/Style2.js)
File: StyleMap (no auto-title, OpenLayers/StyleMap.js)
Group: Symbolizer {
File: Symbolizer (no auto-title, OpenLayers/Symbolizer.js)
File: Line (no auto-title, OpenLayers/Symbolizer/Line.js)
File: Point (no auto-title, OpenLayers/Symbolizer/Point.js)
File: Polygon (no auto-title, OpenLayers/Symbolizer/Polygon.js)
File: Raster (no auto-title, OpenLayers/Symbolizer/Raster.js)
File: Text (no auto-title, OpenLayers/Symbolizer/Text.js)
} # Group: Symbolizer
Group: Tile {
File: Tile (no auto-title, OpenLayers/Tile.js)
File: Image (no auto-title, OpenLayers/Tile/Image.js)
File: Image.IFrame (no auto-title, OpenLayers/Tile/Image/IFrame.js)
} # Group: Tile
File: Tween (no auto-title, OpenLayers/Tween.js)
File: Util (no auto-title, OpenLayers/Util.js)
File: Spherical (no auto-title, OpenLayers/Spherical.js)
File: Deprecated (no auto-title, deprecated.js)
} # Group: OpenLayers
Group: Index {
Index: Everything
Class Index: Classes
Constant Index: Constants
Function Index: Functions
Property Index: Properties
File Index: Files
Constructor Index: Constructor
} # Group: Index

View File

@@ -1,20 +0,0 @@
p {
text-indent: 0; margin-bottom: 1em;
}
.MGroup {
font-variant: normal;
margin: 0.4em 0 0em 10px
}
.MTitle {
font-variant: normal;
}
.CGroup .CTitle {
font-variant: normal;
}
.SGroup .SEntry {
font-variant: normal;
}

View File

@@ -1,102 +0,0 @@
Format: 1.52
# This is the Natural Docs topics file for this project. If you change anything
# here, it will apply to THIS PROJECT ONLY. If you'd like to change something
# for all your projects, edit the Topics.txt in Natural Docs' Config directory
# instead.
# If you'd like to prevent keywords from being recognized by Natural Docs, you
# can do it like this:
# Ignore Keywords: [keyword], [keyword], ...
#
# Or you can use the list syntax like how they are defined:
# Ignore Keywords:
# [keyword]
# [keyword], [plural keyword]
# ...
#-------------------------------------------------------------------------------
# SYNTAX:
#
# Topic Type: [name]
# Alter Topic Type: [name]
# Creates a new topic type or alters one from the main file. Each type gets
# its own index and behavior settings. Its name can have letters, numbers,
# spaces, and these charaters: - / . '
#
# Plural: [name]
# Sets the plural name of the topic type, if different.
#
# Keywords:
# [keyword]
# [keyword], [plural keyword]
# ...
# Defines or adds to the list of keywords for the topic type. They may only
# contain letters, numbers, and spaces and are not case sensitive. Plural
# keywords are used for list topics. You can redefine keywords found in the
# main topics file.
#
# Index: [yes|no]
# Whether the topics get their own index. Defaults to yes. Everything is
# included in the general index regardless of this setting.
#
# Scope: [normal|start|end|always global]
# How the topics affects scope. Defaults to normal.
# normal - Topics stay within the current scope.
# start - Topics start a new scope for all the topics beneath it,
# like class topics.
# end - Topics reset the scope back to global for all the topics
# beneath it.
# always global - Topics are defined as global, but do not change the scope
# for any other topics.
#
# Class Hierarchy: [yes|no]
# Whether the topics are part of the class hierarchy. Defaults to no.
#
# Page Title If First: [yes|no]
# Whether the topic's title becomes the page title if it's the first one in
# a file. Defaults to no.
#
# Break Lists: [yes|no]
# Whether list topics should be broken into individual topics in the output.
# Defaults to no.
#
# Can Group With: [type], [type], ...
# Defines a list of topic types that this one can possibly be grouped with.
# Defaults to none.
#-------------------------------------------------------------------------------
# The following topics are defined in the main file, if you'd like to alter
# their behavior or add keywords:
#
# Generic, Class, Interface, Section, File, Group, Function, Variable,
# Property, Type, Constant, Enumeration, Event, Delegate, Macro,
# Database, Database Table, Database View, Database Index, Database
# Cursor, Database Trigger, Cookie, Build Target
# If you add something that you think would be useful to other developers
# and should be included in Natural Docs by default, please e-mail it to
# topics [at] naturaldocs [dot] org.
Topic Type: Constructor
Class Hierarchy: Yes
Keywords:
constructor
initialize
Alter Topic Type: Function
Add Keywords:
apimethod
apifunction
Alter Topic Type: Property
Add Keywords:
apiproperty

File diff suppressed because one or more lines are too long

View File

@@ -1,57 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers KML Parser Example</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
function parseData(req) {
g = new OpenLayers.Format.KML({extractStyles: true});
html = "";
features = g.read(req.responseText);
for(var feat in features) {
html += "Feature: Geometry: "+ features[feat].geometry+",";
html += "<ul>";
for (var j in features[feat].attributes) {
html += "<li>Attribute "+j+":"+features[feat].attributes[j]+"</li>";
}
html += "</ul>";
html += "<ul>";
for (var j in features[feat].style) {
html += "<li>Style "+j+":"+features[feat].style[j]+"</li>";
}
html += "</ul>"
}
document.getElementById('output').innerHTML = html;
}
function load() {
OpenLayers.Request.GET({
url: "kml/lines.kml",
success: parseData
});
}
</script>
</head>
<body onload="load()">
<h1 id="title">KML Parser Example</h1>
<div id="tags">
KML, parsing, format
</div>
<p id="shortdesc">
Demonstrate the operation of the KML parser.
</p>
<div id="output"></div>
<div id="docs">
<p>This script reads data from a KML file and parses out the
coordinates, appending them to a HTML string with markup tags.
This markup is dumped to an element in the page.</p>
</div>
</body>
</html>

View File

@@ -1,202 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers SLD based selection control</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
.olControlSLDSelectBoxActive {
cursor: crosshair;
}
.olControlSLDSelectPolygonActive {
cursor: crosshair;
}
.olControlSLDSelectLineActive {
cursor: crosshair;
}
.olControlSLDSelectPointActive {
cursor: pointer;
}
</style>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map, controls, layers;
function init(){
OpenLayers.ProxyHost= "proxy.cgi?url=";
map = new OpenLayers.Map('map', {allOverlays: true, controls: []});
var url = "http://demo.opengeo.org/geoserver/wms";
layers = {
states: new OpenLayers.Layer.WMS("State boundary", url,
{layers: 'topp:tasmania_state_boundaries', format: 'image/gif', transparent: 'TRUE'},
{singleTile: true}),
roads: new OpenLayers.Layer.WMS("Roads", url,
{layers: 'topp:tasmania_roads', format: 'image/gif', transparent: 'TRUE'},
{singleTile: true}),
waterbodies: new OpenLayers.Layer.WMS("Water bodies", url,
{layers: 'topp:tasmania_water_bodies', format: 'image/gif', transparent: 'TRUE'},
{singleTile: true}),
cities: new OpenLayers.Layer.WMS("Cities", url,
{layers: 'topp:tasmania_cities', format: 'image/gif', transparent: 'TRUE'},
{singleTile: true})
};
for (var key in layers) {
map.addLayer(layers[key]);
}
map.setCenter(new OpenLayers.LonLat(146.65748632815,-42.230763671875), 7);
map.addControl(new OpenLayers.Control.LayerSwitcher());
controls = {
navigation: new OpenLayers.Control.Navigation(),
box: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.RegularPolygon,
{
displayClass: 'olControlSLDSelectBox',
layers: [layers['waterbodies']],
handlerOptions: {irregular: true}
}
),
polygon: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.Polygon,
{
displayClass: 'olControlSLDSelectPolygon',
layers: [layers['waterbodies']]
}
),
line: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.Path,
{
displayClass: 'olControlSLDSelectLine',
layers: [layers['waterbodies']]
}
),
point: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.Click,
{
displayClass: 'olControlSLDSelectPoint',
layers: [layers['waterbodies']]
}
),
circle: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.RegularPolygon,
{
displayClass: 'olControlSLDSelectBox',
layers: [layers['waterbodies']],
handlerOptions: {sides: 30}
}
)
};
for(var key in controls) {
map.addControl(controls[key]);
}
}
function toggleControl(element) {
for(var key in controls) {
var control = controls[key];
if(element.value == key && element.checked) {
control.activate();
} else {
control.deactivate();
}
}
}
function toggleSelectionLayer(element) {
var selectLayers = [];
var elements = element.value.split("_");
for (var key in layers) {
var layer = layers[key];
for (var i=0, len=elements.length; i<len; i++) {
var value = elements[i];
if (value == key && element.checked) {
selectLayers.push(layer);
}
}
}
for (var i=0, len=this.map.controls.length; i<len; i++) {
var control = this.map.controls[i];
if (control instanceof OpenLayers.Control.SLDSelect) {
control.setLayers(selectLayers);
}
}
}
</script>
</head>
<body onload="init()">
<h1 id="title">SLD based selection on WMS layers</h1>
<div id="tags">
sld, sldselect, styling, style
</div>
<div id="shortdesc">Using Styled Layer Descriptors to make a selection on WMS layers</div>
<div id="map" style="width: 512px; height: 256px; border: 1px solid red;"></div>
<div id="docs">
This example uses the OpenLayers.Control.SLDSelect to select features in a WMS
layer. The features are highlighted using Styled Layer Descriptors (SLD). The
control supports point, box, line and polygon selection modes by configuring the
appriopriate handler.
</div>
<div id="controls">
<ul id="controlToggle"><b>Map Controls</b>
<li>
<input type="radio" name="control" value="navigation" id="noneToggle" onclick="toggleControl(this);" CHECKED>
<label for="noneToggle">navigate</label>
</li>
<li>
<input type="radio" name="control" value="box" id="boxToggle" onclick="toggleControl(this);">
<label for="boxToggle">SLD select with box</label>
</li>
<li>
<input type="radio" name="control" value="polygon" id="polygonToggle" onclick="toggleControl(this);">
<label for="polygonToggle">SLD select with polygon</label>
</li>
<li>
<input type="radio" name="control" value="line" id="lineToggle" onclick="toggleControl(this);">
<label for="lineToggle">SLD select with line</label>
</li>
<li>
<input type="radio" name="control" value="point" id="pointToggle" onclick="toggleControl(this);">
<label for="pointToggle">SLD select with point</label>
</li>
<li>
<input type="radio" name="control" value="circle" id="circleToggle" onclick="toggleControl(this);">
<label for="circleToggle">SLD select with circle</label>
</li>
</ul>
</div>
<div id="layers">
<ul id="layerToggle"><b>Selection layer</b>
<li>
<input type="radio" name="layer" value="waterbodies" id="waterbodiesToggle" onclick="toggleSelectionLayer(this);" CHECKED>
<label for="noneToggle">Water bodies</label>
</li>
<li>
<input type="radio" name="layer" value="cities" id="citiesToggle" onclick="toggleSelectionLayer(this);">
<label for="citiesToggle">Cities</label>
</li>
<li>
<input type="radio" name="layer" value="roads" id="roadsToggle" onclick="toggleSelectionLayer(this);">
<label for="roadsToggle">Roads</label>
</li>
<li>
<input type="radio" name="layer" value="roads_cities" id="roadsCitiesToggle" onclick="toggleSelectionLayer(this);">
<label for="roadsCitiesToggle">Roads and cities</label>
</li>
</ul>
</div>
</body>
</html>

View File

@@ -1,52 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers WMSDescribeLayer Parser Example</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
function parseData(req) {
format = new OpenLayers.Format.WMSDescribeLayer();
html = "<br>";
resp = format.read(req.responseText);
var layerDescriptions = resp.layerDescriptions;
for(var i = 0; i < layerDescriptions.length; i++) {
html += "Layer: typeName: "+layerDescriptions[i].typeName+",";
html += "<ul>";
html += "<li>owsURL: "+layerDescriptions[i].owsURL+"</li>";
html += "<li>owsType: "+layerDescriptions[i].owsType+"</li>";
html += "</ul>"
}
document.getElementById('output').innerHTML = html;
}
function load() {
OpenLayers.Request.GET({
url: "xml/wmsdescribelayer.xml",
success: parseData
});
}
</script>
</head>
<body onload="load()">
<h1 id="title">WMSDescribeLayer Parser Example</h1>
<div id="tags">
wmsdescribelayer, parser, cleanup
</div>
<p id="shortdesc">
Demonstrate the operation of the WMSDescribeLayer parser.
</p>
<div id="output"></div>
<div id="docs">
<p>This script reads data from a file and parses out the coordinates,
appending them to a HTML string with markup tags. This markup is
dumped to an element in the page.</p>
</div>
</body>
</html>

View File

@@ -1,100 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Accelerometer Usage</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript" src="browser.js"></script>
<style type="text/css">
.olControlAttribution {
bottom: 5px;
}
</style>
<script type="text/javascript">
function init() {
if (isEventSupported('deviceorientation', window) || isEventSupported('mozorientation', window) || isEventSupported('devicemotion', window)) {
if (window.DeviceOrientationEvent) {
window.addEventListener("deviceorientation", function (event) {
document.getElementById('resultDeviceOrientation').innerHTML = '';
if (typeof(event.alpha) != 'undefined') {
document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Alpha: " + event.alpha + "<br>";
document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Beta: " + event.beta + "<br>";
document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.gamma + "<br>";
}
if (typeof(event.absolute) != 'undefined') {
document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.absolute + "<br>";
}
if (typeof(event.compassCalibrate) != 'undefined') {
document.getElementById('resultDeviceOrientation').innerHTML = document.getElementById('resultDeviceOrientation').innerHTML + "Gamma: " + event.compassCalibrated + "<br>";
}
}, true);
}
if (window.DeviceMotionEvent) {
window.addEventListener('devicemotion', function (event) {
document.getElementById('resultDeviceMotion').innerHTML = '';
if (typeof(event.accelerationIncludingGravity) != 'undefined') {
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.x: " + event.accelerationIncludingGravity.x + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.y: " + event.accelerationIncludingGravity.y + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "accelerationIncludingGravity.z: " + event.accelerationIncludingGravity.z + "<br>";
}
if (typeof(event.acceleration) != 'undefined') {
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.x: " + event.acceleration.x + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.y: " + event.acceleration.y + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "acceleration.z: " + event.acceleration.z + "<br>";
}
if (typeof(event.rotationRate) != 'undefined') {
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.alpha: " + event.rotationRate.alpha + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.beta: " + event.rotationRate.beta + "<br>";
document.getElementById('resultDeviceMotion').innerHTML = document.getElementById('resultDeviceMotion').innerHTML + "rotationRate.gamma: " + event.rotationRate.gamma + "<br>";
}
}, true);
}
if (window.MozOrientation) {
window.addEventListener("MozOrientation", function (orientation) {
document.getElementById('resultMozOrientation').innerHTML = "orientation.x: " + orientation.x + "<br>";
document.getElementById('resultMozOrientation').innerHTML = document.getElementById('resultMozOrientation').innerHTML + "orientation.y: " + orientation.y + "<br>";
document.getElementById('resultMozOrientation').innerHTML = document.getElementById('resultMozOrientation').innerHTML + "orientation.z: " + orientation.z + "<br>";
}, true);
}
} else {
alert("Unfortunately, your brower doesn't support the orientation usage");
}
}
</script>
</head>
<body onload="init()">
<h1 id="title">Accelerometer</h1>
<p id="shortdesc">
The goal of this script is to demonstrate the usage of accelerometer.
</p>
<p>
The orientation specification can be found <a href="http://dev.w3.org/geo/api/spec-source-orientation.html">here</a>.
</p>
<div id="tags">
browser, vendor, mobile, orientation
</div>
<h1>Device motion</h1>
<div id="resultDeviceMotion">
</div>
<h1>Device orientation</h1>
<div id="resultDeviceOrientation">
</div>
<h1>MOZ orientation</h1>
<div id="resultMozOrientation">
</div>
</body>
</html>

View File

@@ -1,69 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Accessible Custom Click Control</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
<style type="text/css">
a {
text-decoration: none;
font-size: 1.2em;
}
a em {
font-style: normal;
font-weight: normal;
text-decoration: underline;
}
a:hover {
text-decoration: underline;
}
a.api {
font-size:1em;
text-decoration:underline;
}
a.accesskey {
color: white;
}
a.accesskey:focus {
color: #436976;
}
a.zoom {
padding-right: 20px;
}
</style>
<script src="../lib/Firebug/firebug.js"></script>
<script src="../lib/OpenLayers.js"></script>
<script src="accessible-click-control.js"></script>
</head>
<body onload="init()">
<h1 id="title">An accessible click control implementation</h1>
<div id="tags">
click, control, accessibility
</div>
<a class="accesskey"
href=""
accesskey="1"
onclick="document.getElementById('map').focus();return false;">
Jump to map
</a>
<div id="map" class="smallmap" tabindex="0"></div>
<p id="desc">
Demonstrate the KeyboardDefaults control as well as a control that
allows clicking on the map using the keyboard.
First focus the map (using tab key or mouse), then press the 'i'
key to activate the query control. You can then move the point
using arrow keys. Press 'RETURN' to get the coordinate. Press 'i'
again to deactivate the control.
</p>
</body>
</html>

View File

@@ -1,199 +0,0 @@
var map, navigationControl, queryControl;
function init(){
map = new OpenLayers.Map('map', {controls: []});
var layer = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}
);
map.addLayers([layer]);
navigationControl = new OpenLayers.Control.KeyboardDefaults({
observeElement: 'map'
});
map.addControl(navigationControl);
queryControl = new OpenLayers.Control.KeyboardClick({
observeElement: 'map'
});
map.addControl(queryControl);
map.zoomToMaxExtent();
}
/**
* Class: OpenLayers.Control.KeyboardClick
*
* A custom control that (a) adds a vector point that can be moved using the
* arrow keys of the keyboard, and (b) displays a browser alert window when the
* RETURN key is pressed. The control can be activated/deactivated using the
* "i" key. When activated the control deactivates any KeyboardDefaults control
* in the map so that the map is not moved when the arrow keys are pressed.
*
* This control relies on the OpenLayers.Handler.KeyboardPoint custom handler.
*/
OpenLayers.Control.KeyboardClick = OpenLayers.Class(OpenLayers.Control, {
initialize: function(options) {
OpenLayers.Control.prototype.initialize.apply(this, [options]);
var observeElement = this.observeElement || document;
this.handler = new OpenLayers.Handler.KeyboardPoint(this, {
done: this.onClick,
cancel: this.deactivate
}, {
observeElement: observeElement
});
OpenLayers.Event.observe(
observeElement,
"keydown",
OpenLayers.Function.bindAsEventListener(
function(evt) {
if (evt.keyCode == 73) { // "i"
if (this.active) {
this.deactivate();
} else {
this.activate();
}
}
},
this
)
);
},
onClick: function(geometry) {
alert("You clicked near " + geometry.x + " N, " +
geometry.y + " E");
},
activate: function() {
if(!OpenLayers.Control.prototype.activate.apply(this, arguments)) {
return false;
}
// deactivate any KeyboardDefaults control
var keyboardDefaults = this.map.getControlsByClass(
'OpenLayers.Control.KeyboardDefaults')[0];
if (keyboardDefaults) {
keyboardDefaults.deactivate();
}
return true;
},
deactivate: function() {
if(!OpenLayers.Control.prototype.deactivate.apply(this, arguments)) {
return false;
}
// reactivate any KeyboardDefaults control
var keyboardDefaults = this.map.getControlsByClass(
'OpenLayers.Control.KeyboardDefaults')[0];
if (keyboardDefaults) {
keyboardDefaults.activate();
}
return true;
}
});
/**
* Class: OpenLayers.Handler.KeyboardPoint
*
* A custom handler that displays a vector point that can be moved
* using the arrow keys of the keyboard.
*/
OpenLayers.Handler.KeyboardPoint = OpenLayers.Class(OpenLayers.Handler, {
KEY_EVENTS: ["keydown"],
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
// cache the bound event listener method so it can be unobserved later
this.eventListener = OpenLayers.Function.bindAsEventListener(
this.handleKeyEvent, this
);
},
activate: function() {
if(!OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
return false;
}
this.layer = new OpenLayers.Layer.Vector(this.CLASS_NAME);
this.map.addLayer(this.layer);
this.observeElement = this.observeElement || document;
for (var i=0, len=this.KEY_EVENTS.length; i<len; i++) {
OpenLayers.Event.observe(
this.observeElement, this.KEY_EVENTS[i], this.eventListener);
}
if(!this.point) {
this.createFeature();
}
return true;
},
deactivate: function() {
if (!OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
return false;
}
for (var i=0, len=this.KEY_EVENTS.length; i<len; i++) {
OpenLayers.Event.stopObserving(
this.observeElement, this.KEY_EVENTS[i], this.eventListener);
}
this.map.removeLayer(this.layer);
this.destroyFeature();
return true;
},
handleKeyEvent: function (evt) {
switch(evt.keyCode) {
case OpenLayers.Event.KEY_LEFT:
this.modifyFeature(-3, 0);
break;
case OpenLayers.Event.KEY_RIGHT:
this.modifyFeature(3, 0);
break;
case OpenLayers.Event.KEY_UP:
this.modifyFeature(0, 3);
break;
case OpenLayers.Event.KEY_DOWN:
this.modifyFeature(0, -3);
break;
case OpenLayers.Event.KEY_RETURN:
this.callback('done', [this.point.geometry.clone()]);
break;
case OpenLayers.Event.KEY_ESC:
this.callback('cancel');
break;
}
},
modifyFeature: function(lon, lat) {
if(!this.point) {
this.createFeature();
}
var resolution = this.map.getResolution();
this.point.geometry.x = this.point.geometry.x + lon * resolution;
this.point.geometry.y = this.point.geometry.y + lat * resolution;
this.callback("modify", [this.point.geometry, this.point, false]);
this.point.geometry.clearBounds();
this.drawFeature();
},
createFeature: function() {
var center = this.map.getCenter();
var geometry = new OpenLayers.Geometry.Point(
center.lon, center.lat
);
this.point = new OpenLayers.Feature.Vector(geometry);
this.callback("create", [this.point.geometry, this.point]);
this.point.geometry.clearBounds();
this.layer.addFeatures([this.point], {silent: true});
},
destroyFeature: function() {
this.layer.destroyFeatures([this.point]);
this.point = null;
},
drawFeature: function() {
this.layer.drawFeature(this.point, this.style);
}
});

View File

@@ -1,130 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Custom and accessible panel</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
.olControlPanel button {
position: relative;
display: block;
margin: 2px;
border: 1px solid;
padding: 0 5px;
border-radius: 4px;
height: 35px;
background-color: white;
float: left;
overflow: visible; /* needed to remove padding from buttons in IE */
}
.olControlPanel button span {
padding-left: 25px;
}
.olControlPanel button span:first-child {
padding-left: 0;
display: block;
position: absolute;
left: 2px;
}
.olControlPanel .olControlDrawFeatureItemActive span:first-child {
background-image: url("../theme/default/img/draw_line_on.png");
height: 22px;
width: 24px;
top: 5px;
}
.olControlPanel .olControlDrawFeatureItemInactive span:first-child {
background-image: url("../theme/default/img/draw_line_off.png");
height: 22px;
width: 24px;
top: 5px;
}
.olControlPanel .olControlZoomBoxItemInactive span:first-child {
background-image: url("../img/drag-rectangle-off.png");
height: 29px;
width: 29px;
top: 2px;
}
.olControlPanel .olControlZoomBoxItemActive span:first-child {
background-image: url("../img/drag-rectangle-on.png");
height: 29px;
width: 29px;
top: 2px;
}
.olControlPanel .olControlZoomToMaxExtentItemInactive span:first-child {
background-image: url("../img/zoom-world-mini.png");
height: 18px;
width: 18px;
top: 8px;
}
.olControlPanel .navHistory span:first-child {
background-image: url("../theme/default/img/navigation_history.png");
height: 24px;
width: 24px;
top: 4px;
}
.olControlPanel .navHistoryPreviousItemActive span:first-child {
background-position: 0 0;
}
.olControlPanel .navHistoryPreviousItemInactive span:first-child {
background-position: 0 -24px;
}
.olControlPanel .navHistoryNextItemActive span:first-child {
background-position: -24px 0;
}
.olControlPanel .navHistoryNextItemInactive span:first-child {
background-position: -24px -24px;
}
</style>
<script src="../lib/OpenLayers.js"></script>
<script src="accessible-panel.js"></script>
</head>
<body onload="init()">
<h1 id="title">Custom and accessible panel</h1>
<div id="tags">
panels, CSS, style, accessibility, button
</div>
<p id="shortdesc">
Create a custom and accessible panel, styled entirely with
CSS.
</p>
<div id="panel"></div>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>An accessible panel:
<ul>
<li>The buttons are actual HTML buttons. You can therefore
use the TAB key to give the focus to the panel's buttons, and the "ENTER"
key to activate or trigger the corresponding control.</li>
<li>The buttons include text and titles (displayed when a button
is hovered).</li>
<li>If you remove colors from the page (for example using FireFox's <a
href="https://addons.mozilla.org/en-US/firefox/addon/no-color/">No
Color extension</a>) the buttons are still visible, and
accessible using the keyboard.</li>
</ul>
</p>
<p>By default a panel creates buttons as divs. In this example the
<code>createControlMarkup</code> panel function is overridden to create
a more accessible markup for the buttons. See the <a
href="accessible-panel.js" target="_blank"> accessible-panel.js
source</a> to see how this is done.</p>
<p>Note: in IE 8, when a button is pressed its content shifts by 1 pixel.
This is a <a
href="http://labs.findsubstance.com/2009/05/21/ie8-form-button-with-background-image-on-click-css-bug/">known
IE8 bug</a>, with known workarounds. No workaround is applied in this
example though.</p>
</div>
</body>
</html>

View File

@@ -1,64 +0,0 @@
var lon = 5;
var lat = 40;
var zoom = 5;
var map, layer;
function init() {
map = new OpenLayers.Map( 'map', { controls: [] } );
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
vlayer = new OpenLayers.Layer.Vector( "Editable" );
map.addLayer(vlayer);
zb = new OpenLayers.Control.ZoomBox({
title: "Zoom box: zoom clicking and dragging",
text: "Zoom"
});
var panel = new OpenLayers.Control.Panel({
defaultControl: zb,
createControlMarkup: function(control) {
var button = document.createElement('button'),
iconSpan = document.createElement('span'),
textSpan = document.createElement('span');
iconSpan.innerHTML = '&nbsp;';
button.appendChild(iconSpan);
if (control.text) {
textSpan.innerHTML = control.text;
}
button.appendChild(textSpan);
return button;
}
});
panel.addControls([
zb,
new OpenLayers.Control.DrawFeature(vlayer, OpenLayers.Handler.Path,
{title:'Draw a feature', text: 'Draw'}),
new OpenLayers.Control.ZoomToMaxExtent({
title:"Zoom to the max extent",
text: "World"
})
]);
nav = new OpenLayers.Control.NavigationHistory({
previousOptions: {
title: "Go to previous map position",
text: "Prev"
},
nextOptions: {
title: "Go to next map position",
text: "Next"
},
displayClass: "navHistory"
});
// parent control must be added to the map
map.addControl(nav);
panel.addControls([nav.next, nav.previous]);
map.addControl(panel);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}

View File

@@ -1,167 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Accessible Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
table {
border: 1 px solid white;
padding: 0;
}
td {
text-align: center;
}
a {
text-decoration: none;
font-size: 1.2em;
}
a em {
font-style: normal;
font-weight: normal;
text-decoration: underline;
}
a:hover {
text-decoration: underline;
}
a.api {
font-size:1em;
text-decoration:underline;
}
a.accesskey {
color: white;
}
a.accesskey:focus {
color: #436976;
}
a.zoom {
padding-right: 20px;
}
</style>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map = null;
function init(){
var options = {
controls: [
new OpenLayers.Control.KeyboardDefaults({
observeElement: 'map'
})
]
};
map = new OpenLayers.Map('map', options);
var wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?",
{layers: 'basic'}
);
map.addLayer(wms);
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<h1 id="title">Accessible Example</h1>
<div id="tags">
keyboard, pan, panning, zoom, zooming, accesskey
</div>
<a class="accesskey"
href=""
accesskey="1"
onclick="document.getElementById('map').focus(); return false;">
Go to map
</a>
<p id="shortdesc">
Demonstrate the KeyboardDefaults control and how to use links
with Access Keys to navigate the map with the keyboard.
</p>
<a class="zoom"
href="javascript: void map.zoomIn();"
accesskey="i">
zoom <em>i</em>n</a>
<a class="zoom"
href="javascript: void map.zoomOut();"
accesskey="o">
zoom <em>o</em>ut</a>
<table>
<tbody>
<tr>
<td>&nbsp;</td>
<td>
<a href="javascript: void map.pan(0, -map.getSize().h / 4);"
accesskey="n">
pan <em>n</em>orth
</a>
</td>
</tr>
<tr>
<td>
<a href="javascript: void map.pan(-map.getSize().w / 4, 0);"
accesskey="w">
pan <em>w</em>est
</a>
</td>
<td id="map" class="smallmap" tabindex="0"></td>
<td>
<a href="javascript: void map.pan(map.getSize().w / 4, 0);"
accesskey="e">
pan <em>e</em>ast
</a>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<a href="javascript: void map.pan(0, map.getSize().h / 4);"
accesskey="s">
pan <em>s</em>outh
</a>
</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<div id="docs">
<p>Navigate the map in one of three ways:</p>
<ol>
<li>Use Access Key "1" (alt + 1) to focus the map element, and
use following keys to pan and zoom:
<ul>
<li>+ (zoom in)</li>
<li>- (zoom out)</li>
<li>up-arrow (pan north)</li>
<li>down-arrow (pan south)</li>
<li>left-arrow (pan east)</li>
<li>right-arrow (pan west)</li>
</ul>
See <a href=http://en.wikipedia.org/wiki/Access_key>wikipedia</a> for
more detail about Access Keys.
</li>
<li>Navigate to pan and zoom links using the "tab" key, and
press "enter" to pan and zoom</li>
<li>If Access Keys work for links in your browser, use:
<ul>
<li>i (zoom in)</li>
<li>o (zoom out)</li>
<li>n (pan north)</li>
<li>s (pan south)</li>
<li>e (pan east)</li>
<li>w (pan west)</li>
</ul>
</li>
</ol>
<p>
This is an example of using alternate methods to control panning and zooming. This approach uses map.pan() and map.zoom(). You'll note that to pan, additional math is necessary along with map.size() in order to set the distance to pan.
</div>
</body>
</html>

View File

@@ -1,34 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers All Overlays with Google and OSM</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="http://maps.google.com/maps/api/js?v=3&amp;sensor=false"></script>
<script src="../lib/OpenLayers.js"></script>
<script src="all-overlays-google.js"></script>
</head>
<body onload="init()">
<h1 id="title">All Overlays with Google and OSM</h1>
<div id="tags">
overlay, baselayer, google, osm, openstreetmap, light
</div>
<p id="shortdesc">
Using the Google and OSM layers as overlays.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
Using the allOverlays property on the map, the first layer added
must initially be visible. This example demonstrates the use of
a Google layer and an OSM layer treated as overlays.
</p><p>
See the <a href="all-overlays-google.js" target="_blank">
all-overlays-google.js source</a> to see how this is done.
</p>
</div>
</body>
</html>

View File

@@ -1,19 +0,0 @@
var map;
function init() {
map = new OpenLayers.Map({
div: "map",
allOverlays: true
});
var osm = new OpenLayers.Layer.OSM();
var gmap = new OpenLayers.Layer.Google("Google Streets", {visibility: false});
// note that first layer must be visible
map.addLayers([osm, gmap]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}

View File

@@ -1,76 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>All Overlays Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init() {
map = new OpenLayers.Map({
div: "map",
allOverlays: true,
maxExtent: new OpenLayers.Bounds(
1549471.9221, 6403610.94, 1550001.32545, 6404015.8
)
});
// give the features some style
var styles = new OpenLayers.StyleMap({
"default": {
strokeWidth: 2
},
"select": {
strokeColor: "#0099cc",
strokeWidth: 4
}
});
// add rules from the above lookup table
styles.addUniqueValueRules("default", "RP_TYPE", {
10: {strokeColor: "#000000", strokeWidth: 2},
12: {strokeColor: "#222222", strokeWidth: 2},
14: {strokeColor: "#444444", strokeWidth: 2},
16: {strokeColor: "#666666", strokeWidth: 2},
18: {strokeColor: "#888888", strokeWidth: 2},
19: {strokeColor: "#666666", strokeWidth: 1}
});
var vectors = new OpenLayers.Layer.Vector("Lines", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "data/roads.json",
format: new OpenLayers.Format.GeoJSON()
}),
styleMap: styles
});
map.addLayer(vectors);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<h1 id="title">OpenLayers Overlays Only Example</h1>
<div id="tags">
overlay, baselayer, light
</div>
<p id="shortdesc">
Demonstrates a map with overlays only.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
To create a map that allows any draw order with all layer types
and lets you set the visibility of any layer independently, set
the allOverlays property on the map to true.
</div>
</body>
</html>

View File

@@ -1,29 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<title>AnchorPermalink Example</title>
<script src="../lib/OpenLayers.js"></script>
<script src="anchor-permalink.js"></script>
</head>
<body onload="init()">
<h1 id="title">AnchorPermalink Example</h1>
<div id="tags">
anchor, permalink
</div>
<p id="shortdesc">
Place a permalink in the anchor of the url.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
See the <a href="anchor-permalink.js" target="_blank">anchor-permalink.js
source</a> to see how this is done.
</p>
</div>
</body>
</html>

View File

@@ -1,13 +0,0 @@
function init() {
var map = new OpenLayers.Map({
div: "map",
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
layers: [
new OpenLayers.Layer.OSM()
]
});
if (!map.getCenter()) map.zoomToMaxExtent();
map.addControl(new OpenLayers.Control.Permalink({anchor: true}));
}

View File

@@ -1,98 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Animated Panning of the Map via map.panTo</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map, layer, running = false;
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'delay': 200
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.onClick
}, this.handlerOptions
);
},
onClick: function(evt) {
map.panTo(map.getLonLatFromPixel(evt.xy));
}
});
function init(){
map = new OpenLayers.Map('map', {numZoomLevels: 2});
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
map.zoomToMaxExtent();
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.addControl(new OpenLayers.Control.OverviewMap());
map2 = new OpenLayers.Map('map2', {'panMethod': null, numZoomLevels: 2} );
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
map2.addLayer(layer);
map2.zoomToMaxExtent();
}
function setCenterInterval() {
if (!running) {
setCenter();
running = setInterval('setCenter()', 500);
} else {
clearInterval(running);
running = false;
}
}
function setCenter() {
var lon = Math.random() * 360 - 180;
var lat = Math.random() * 180 - 90;
var lonlat = new OpenLayers.LonLat(lon, lat);
map.panTo(lonlat);
}
</script>
</head>
<body onload="init()">
<h1 id="title">map.panTo Example</h1>
<div id="tags">
panning, animation, effect, smooth, panMethod
</div>
<div id="shortdesc">Show animated panning effects in the map</div>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This is an example of transition effects. If the new random center is in the current extent, the map will pan smoothly. <br>
The random selection will continue until you press it again. Additionally, you can single click in the map to pan smoothly
to that area, or use the pan control to pan smoothly.
</p>
</div>
<button onclick="setCenterInterval()">Start/stop random recenter</button>
<div id="map2" class="smallmap"></div>
<div>
<p>To turn off Animated Panning, create a map with an panMethod set to
null. </p>
</div>
</body>
</html>

View File

@@ -1,670 +0,0 @@
/*
Animator.js 1.1.9
This library is released under the BSD license:
Copyright (c) 2006, Bernard Sumption. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer. Redistributions in binary
form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials
provided with the distribution. Neither the name BernieCode nor
the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
*/
// Applies a sequence of numbers between 0 and 1 to a number of subjects
// construct - see setOptions for parameters
function Animator(options) {
this.setOptions(options);
var _this = this;
this.timerDelegate = function(){_this.onTimerEvent()};
this.subjects = [];
this.target = 0;
this.state = 0;
this.lastTime = null;
};
Animator.prototype = {
// apply defaults
setOptions: function(options) {
this.options = Animator.applyDefaults({
interval: 20, // time between animation frames
duration: 400, // length of animation
onComplete: function(){},
onStep: function(){},
transition: Animator.tx.easeInOut
}, options);
},
// animate from the current state to provided value
seekTo: function(to) {
this.seekFromTo(this.state, to);
},
// animate from the current state to provided value
seekFromTo: function(from, to) {
this.target = Math.max(0, Math.min(1, to));
this.state = Math.max(0, Math.min(1, from));
this.lastTime = new Date().getTime();
if (!this.intervalId) {
this.intervalId = window.setInterval(this.timerDelegate, this.options.interval);
}
},
// animate from the current state to provided value
jumpTo: function(to) {
this.target = this.state = Math.max(0, Math.min(1, to));
this.propagate();
},
// seek to the opposite of the current target
toggle: function() {
this.seekTo(1 - this.target);
},
// add a function or an object with a method setState(state) that will be called with a number
// between 0 and 1 on each frame of the animation
addSubject: function(subject) {
this.subjects[this.subjects.length] = subject;
return this;
},
// remove all subjects
clearSubjects: function() {
this.subjects = [];
},
// forward the current state to the animation subjects
propagate: function() {
var value = this.options.transition(this.state);
for (var i=0; i<this.subjects.length; i++) {
if (this.subjects[i].setState) {
this.subjects[i].setState(value);
} else {
this.subjects[i](value);
}
}
},
// called once per frame to update the current state
onTimerEvent: function() {
var now = new Date().getTime();
var timePassed = now - this.lastTime;
this.lastTime = now;
var movement = (timePassed / this.options.duration) * (this.state < this.target ? 1 : -1);
if (Math.abs(movement) >= Math.abs(this.state - this.target)) {
this.state = this.target;
} else {
this.state += movement;
}
try {
this.propagate();
} finally {
this.options.onStep.call(this);
if (this.target == this.state) {
window.clearInterval(this.intervalId);
this.intervalId = null;
this.options.onComplete.call(this);
}
}
},
// shortcuts
play: function() {this.seekFromTo(0, 1)},
reverse: function() {this.seekFromTo(1, 0)},
// return a string describing this Animator, for debugging
inspect: function() {
var str = "#<Animator:\n";
for (var i=0; i<this.subjects.length; i++) {
str += this.subjects[i].inspect();
}
str += ">";
return str;
}
};
// merge the properties of two objects
Animator.applyDefaults = function(defaults, prefs) {
prefs = prefs || {};
var prop, result = {};
for (prop in defaults) result[prop] = prefs[prop] !== undefined ? prefs[prop] : defaults[prop];
return result;
};
// make an array from any object
Animator.makeArray = function(o) {
if (o == null) return [];
if (!o.length) return [o];
var result = [];
for (var i=0; i<o.length; i++) result[i] = o[i];
return result;
};
// convert a dash-delimited-property to a camelCaseProperty (c/o Prototype, thanks Sam!)
Animator.camelize = function(string) {
var oStringList = string.split('-');
if (oStringList.length == 1) return oStringList[0];
var camelizedString = string.indexOf('-') == 0
? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)
: oStringList[0];
for (var i = 1, len = oStringList.length; i < len; i++) {
var s = oStringList[i];
camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
}
return camelizedString;
};
// syntactic sugar for creating CSSStyleSubjects
Animator.apply = function(el, style, options) {
if (style instanceof Array) {
return new Animator(options).addSubject(new CSSStyleSubject(el, style[0], style[1]));
}
return new Animator(options).addSubject(new CSSStyleSubject(el, style));
};
// make a transition function that gradually accelerates. pass a=1 for smooth
// gravitational acceleration, higher values for an exaggerated effect
Animator.makeEaseIn = function(a) {
return function(state) {
return Math.pow(state, a*2);
}
};
// as makeEaseIn but for deceleration
Animator.makeEaseOut = function(a) {
return function(state) {
return 1 - Math.pow(1 - state, a*2);
}
};
// make a transition function that, like an object with momentum being attracted to a point,
// goes past the target then returns
Animator.makeElastic = function(bounces) {
return function(state) {
state = Animator.tx.easeInOut(state);
return ((1-Math.cos(state * Math.PI * bounces)) * (1 - state)) + state;
}
};
// make an Attack Decay Sustain Release envelope that starts and finishes on the same level
//
Animator.makeADSR = function(attackEnd, decayEnd, sustainEnd, sustainLevel) {
if (sustainLevel == null) sustainLevel = 0.5;
return function(state) {
if (state < attackEnd) {
return state / attackEnd;
}
if (state < decayEnd) {
return 1 - ((state - attackEnd) / (decayEnd - attackEnd) * (1 - sustainLevel));
}
if (state < sustainEnd) {
return sustainLevel;
}
return sustainLevel * (1 - ((state - sustainEnd) / (1 - sustainEnd)));
}
};
// make a transition function that, like a ball falling to floor, reaches the target and/
// bounces back again
Animator.makeBounce = function(bounces) {
var fn = Animator.makeElastic(bounces);
return function(state) {
state = fn(state);
return state <= 1 ? state : 2-state;
}
};
// pre-made transition functions to use with the 'transition' option
Animator.tx = {
easeInOut: function(pos){
return ((-Math.cos(pos*Math.PI)/2) + 0.5);
},
linear: function(x) {
return x;
},
easeIn: Animator.makeEaseIn(1.5),
easeOut: Animator.makeEaseOut(1.5),
strongEaseIn: Animator.makeEaseIn(2.5),
strongEaseOut: Animator.makeEaseOut(2.5),
elastic: Animator.makeElastic(1),
veryElastic: Animator.makeElastic(3),
bouncy: Animator.makeBounce(1),
veryBouncy: Animator.makeBounce(3)
};
// animates a pixel-based style property between two integer values
function NumericalStyleSubject(els, property, from, to, units) {
this.els = Animator.makeArray(els);
if (property == 'opacity' && window.ActiveXObject) {
this.property = 'filter';
} else {
this.property = Animator.camelize(property);
}
this.from = parseFloat(from);
this.to = parseFloat(to);
this.units = units != null ? units : 'px';
}
NumericalStyleSubject.prototype = {
setState: function(state) {
var style = this.getStyle(state);
var visibility = (this.property == 'opacity' && state == 0) ? 'hidden' : '';
var j=0;
for (var i=0; i<this.els.length; i++) {
try {
this.els[i].style[this.property] = style;
} catch (e) {
// ignore fontWeight - intermediate numerical values cause exeptions in firefox
if (this.property != 'fontWeight') throw e;
}
if (j++ > 20) return;
}
},
getStyle: function(state) {
state = this.from + ((this.to - this.from) * state);
if (this.property == 'filter') return "alpha(opacity=" + Math.round(state*100) + ")";
if (this.property == 'opacity') return state;
return Math.round(state) + this.units;
},
inspect: function() {
return "\t" + this.property + "(" + this.from + this.units + " to " + this.to + this.units + ")\n";
}
};
// animates a colour based style property between two hex values
function ColorStyleSubject(els, property, from, to) {
this.els = Animator.makeArray(els);
this.property = Animator.camelize(property);
this.to = this.expandColor(to);
this.from = this.expandColor(from);
this.origFrom = from;
this.origTo = to;
}
ColorStyleSubject.prototype = {
// parse "#FFFF00" to [256, 256, 0]
expandColor: function(color) {
var hexColor, red, green, blue;
hexColor = ColorStyleSubject.parseColor(color);
if (hexColor) {
red = parseInt(hexColor.slice(1, 3), 16);
green = parseInt(hexColor.slice(3, 5), 16);
blue = parseInt(hexColor.slice(5, 7), 16);
return [red,green,blue]
}
if (window.DEBUG) {
alert("Invalid colour: '" + color + "'");
}
},
getValueForState: function(color, state) {
return Math.round(this.from[color] + ((this.to[color] - this.from[color]) * state));
},
setState: function(state) {
var color = '#'
+ ColorStyleSubject.toColorPart(this.getValueForState(0, state))
+ ColorStyleSubject.toColorPart(this.getValueForState(1, state))
+ ColorStyleSubject.toColorPart(this.getValueForState(2, state));
for (var i=0; i<this.els.length; i++) {
this.els[i].style[this.property] = color;
}
},
inspect: function() {
return "\t" + this.property + "(" + this.origFrom + " to " + this.origTo + ")\n";
}
};
// return a properly formatted 6-digit hex colour spec, or false
ColorStyleSubject.parseColor = function(string) {
var color = '#', match;
if(match = ColorStyleSubject.parseColor.rgbRe.exec(string)) {
var part;
for (var i=1; i<=3; i++) {
part = Math.max(0, Math.min(255, parseInt(match[i])));
color += ColorStyleSubject.toColorPart(part);
}
return color;
}
if (match = ColorStyleSubject.parseColor.hexRe.exec(string)) {
if(match[1].length == 3) {
for (var i=0; i<3; i++) {
color += match[1].charAt(i) + match[1].charAt(i);
}
return color;
}
return '#' + match[1];
}
return false;
};
// convert a number to a 2 digit hex string
ColorStyleSubject.toColorPart = function(number) {
if (number > 255) number = 255;
var digits = number.toString(16);
if (number < 16) return '0' + digits;
return digits;
};
ColorStyleSubject.parseColor.rgbRe = /^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i;
ColorStyleSubject.parseColor.hexRe = /^\#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
// Animates discrete styles, i.e. ones that do not scale but have discrete values
// that can't be interpolated
function DiscreteStyleSubject(els, property, from, to, threshold) {
this.els = Animator.makeArray(els);
this.property = Animator.camelize(property);
this.from = from;
this.to = to;
this.threshold = threshold || 0.5;
}
DiscreteStyleSubject.prototype = {
setState: function(state) {
var j=0;
for (var i=0; i<this.els.length; i++) {
this.els[i].style[this.property] = state <= this.threshold ? this.from : this.to;
}
},
inspect: function() {
return "\t" + this.property + "(" + this.from + " to " + this.to + " @ " + this.threshold + ")\n";
}
};
// animates between two styles defined using CSS.
// if style1 and style2 are present, animate between them, if only style1
// is present, animate between the element's current style and style1
function CSSStyleSubject(els, style1, style2) {
els = Animator.makeArray(els);
this.subjects = [];
if (els.length == 0) return;
var prop, toStyle, fromStyle;
if (style2) {
fromStyle = this.parseStyle(style1, els[0]);
toStyle = this.parseStyle(style2, els[0]);
} else {
toStyle = this.parseStyle(style1, els[0]);
fromStyle = {};
for (prop in toStyle) {
fromStyle[prop] = CSSStyleSubject.getStyle(els[0], prop);
}
}
// remove unchanging properties
var prop;
for (prop in fromStyle) {
if (fromStyle[prop] == toStyle[prop]) {
delete fromStyle[prop];
delete toStyle[prop];
}
}
// discover the type (numerical or colour) of each style
var prop, units, match, type, from, to;
for (prop in fromStyle) {
var fromProp = String(fromStyle[prop]);
var toProp = String(toStyle[prop]);
if (toStyle[prop] == null) {
if (window.DEBUG) alert("No to style provided for '" + prop + '"');
continue;
}
if (from = ColorStyleSubject.parseColor(fromProp)) {
to = ColorStyleSubject.parseColor(toProp);
type = ColorStyleSubject;
} else if (fromProp.match(CSSStyleSubject.numericalRe)
&& toProp.match(CSSStyleSubject.numericalRe)) {
from = parseFloat(fromProp);
to = parseFloat(toProp);
type = NumericalStyleSubject;
match = CSSStyleSubject.numericalRe.exec(fromProp);
var reResult = CSSStyleSubject.numericalRe.exec(toProp);
if (match[1] != null) {
units = match[1];
} else if (reResult[1] != null) {
units = reResult[1];
} else {
units = reResult;
}
} else if (fromProp.match(CSSStyleSubject.discreteRe)
&& toProp.match(CSSStyleSubject.discreteRe)) {
from = fromProp;
to = toProp;
type = DiscreteStyleSubject;
units = 0; // hack - how to get an animator option down to here
} else {
if (window.DEBUG) {
alert("Unrecognised format for value of "
+ prop + ": '" + fromStyle[prop] + "'");
}
continue;
}
this.subjects[this.subjects.length] = new type(els, prop, from, to, units);
}
}
CSSStyleSubject.prototype = {
// parses "width: 400px; color: #FFBB2E" to {width: "400px", color: "#FFBB2E"}
parseStyle: function(style, el) {
var rtn = {};
// if style is a rule set
if (style.indexOf(":") != -1) {
var styles = style.split(";");
for (var i=0; i<styles.length; i++) {
var parts = CSSStyleSubject.ruleRe.exec(styles[i]);
if (parts) {
rtn[parts[1]] = parts[2];
}
}
}
// else assume style is a class name
else {
var prop, value, oldClass;
oldClass = el.className;
el.className = style;
for (var i=0; i<CSSStyleSubject.cssProperties.length; i++) {
prop = CSSStyleSubject.cssProperties[i];
value = CSSStyleSubject.getStyle(el, prop);
if (value != null) {
rtn[prop] = value;
}
}
el.className = oldClass;
}
return rtn;
},
setState: function(state) {
for (var i=0; i<this.subjects.length; i++) {
this.subjects[i].setState(state);
}
},
inspect: function() {
var str = "";
for (var i=0; i<this.subjects.length; i++) {
str += this.subjects[i].inspect();
}
return str;
}
};
// get the current value of a css property,
CSSStyleSubject.getStyle = function(el, property){
var style;
if(document.defaultView && document.defaultView.getComputedStyle){
style = document.defaultView.getComputedStyle(el, "").getPropertyValue(property);
if (style) {
return style;
}
}
property = Animator.camelize(property);
if(el.currentStyle){
style = el.currentStyle[property];
}
return style || el.style[property]
};
CSSStyleSubject.ruleRe = /^\s*([a-zA-Z\-]+)\s*:\s*(\S(.+\S)?)\s*$/;
CSSStyleSubject.numericalRe = /^-?\d+(?:\.\d+)?(%|[a-zA-Z]{2})?$/;
CSSStyleSubject.discreteRe = /^\w+$/;
// required because the style object of elements isn't enumerable in Safari
/*
CSSStyleSubject.cssProperties = ['background-color','border','border-color','border-spacing',
'border-style','border-top','border-right','border-bottom','border-left','border-top-color',
'border-right-color','border-bottom-color','border-left-color','border-top-width','border-right-width',
'border-bottom-width','border-left-width','border-width','bottom','color','font-size','font-size-adjust',
'font-stretch','font-style','height','left','letter-spacing','line-height','margin','margin-top',
'margin-right','margin-bottom','margin-left','marker-offset','max-height','max-width','min-height',
'min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding',
'padding-top','padding-right','padding-bottom','padding-left','quotes','right','size','text-indent',
'top','width','word-spacing','z-index','opacity','outline-offset'];*/
CSSStyleSubject.cssProperties = ['azimuth','background','background-attachment','background-color','background-image','background-position','background-repeat','border-collapse','border-color','border-spacing','border-style','border-top','border-top-color','border-right-color','border-bottom-color','border-left-color','border-top-style','border-right-style','border-bottom-style','border-left-style','border-top-width','border-right-width','border-bottom-width','border-left-width','border-width','bottom','clear','clip','color','content','cursor','direction','display','elevation','empty-cells','css-float','font','font-family','font-size','font-size-adjust','font-stretch','font-style','font-variant','font-weight','height','left','letter-spacing','line-height','list-style','list-style-image','list-style-position','list-style-type','margin','margin-top','margin-right','margin-bottom','margin-left','max-height','max-width','min-height','min-width','orphans','outline','outline-color','outline-style','outline-width','overflow','padding','padding-top','padding-right','padding-bottom','padding-left','pause','position','right','size','table-layout','text-align','text-decoration','text-indent','text-shadow','text-transform','top','vertical-align','visibility','white-space','width','word-spacing','z-index','opacity','outline-offset','overflow-x','overflow-y'];
// chains several Animator objects together
function AnimatorChain(animators, options) {
this.animators = animators;
this.setOptions(options);
for (var i=0; i<this.animators.length; i++) {
this.listenTo(this.animators[i]);
}
this.forwards = false;
this.current = 0;
}
AnimatorChain.prototype = {
// apply defaults
setOptions: function(options) {
this.options = Animator.applyDefaults({
// by default, each call to AnimatorChain.play() calls jumpTo(0) of each animator
// before playing, which can cause flickering if you have multiple animators all
// targeting the same element. Set this to false to avoid this.
resetOnPlay: true
}, options);
},
// play each animator in turn
play: function() {
this.forwards = true;
this.current = -1;
if (this.options.resetOnPlay) {
for (var i=0; i<this.animators.length; i++) {
this.animators[i].jumpTo(0);
}
}
this.advance();
},
// play all animators backwards
reverse: function() {
this.forwards = false;
this.current = this.animators.length;
if (this.options.resetOnPlay) {
for (var i=0; i<this.animators.length; i++) {
this.animators[i].jumpTo(1);
}
}
this.advance();
},
// if we have just play()'d, then call reverse(), and vice versa
toggle: function() {
if (this.forwards) {
this.seekTo(0);
} else {
this.seekTo(1);
}
},
// internal: install an event listener on an animator's onComplete option
// to trigger the next animator
listenTo: function(animator) {
var oldOnComplete = animator.options.onComplete;
var _this = this;
animator.options.onComplete = function() {
if (oldOnComplete) oldOnComplete.call(animator);
_this.advance();
}
},
// play the next animator
advance: function() {
if (this.forwards) {
if (this.animators[this.current + 1] == null) return;
this.current++;
this.animators[this.current].play();
} else {
if (this.animators[this.current - 1] == null) return;
this.current--;
this.animators[this.current].reverse();
}
},
// this function is provided for drop-in compatibility with Animator objects,
// but only accepts 0 and 1 as target values
seekTo: function(target) {
if (target <= 0) {
this.forwards = false;
this.animators[this.current].seekTo(0);
} else {
this.forwards = true;
this.animators[this.current].seekTo(1);
}
}
};
// an Accordion is a class that creates and controls a number of Animators. An array of elements is passed in,
// and for each element an Animator and a activator button is created. When an Animator's activator button is
// clicked, the Animator and all before it seek to 0, and all Animators after it seek to 1. This can be used to
// create the classic Accordion effect, hence the name.
// see setOptions for arguments
function Accordion(options) {
this.setOptions(options);
var selected = this.options.initialSection, current;
if (this.options.rememberance) {
current = document.location.hash.substring(1);
}
this.rememberanceTexts = [];
this.ans = [];
var _this = this;
for (var i=0; i<this.options.sections.length; i++) {
var el = this.options.sections[i];
var an = new Animator(this.options.animatorOptions);
var from = this.options.from + (this.options.shift * i);
var to = this.options.to + (this.options.shift * i);
an.addSubject(new NumericalStyleSubject(el, this.options.property, from, to, this.options.units));
an.jumpTo(0);
var activator = this.options.getActivator(el);
activator.index = i;
activator.onclick = function(){_this.show(this.index)};
this.ans[this.ans.length] = an;
this.rememberanceTexts[i] = activator.innerHTML.replace(/\s/g, "");
if (this.rememberanceTexts[i] === current) {
selected = i;
}
}
this.show(selected);
}
Accordion.prototype = {
// apply defaults
setOptions: function(options) {
this.options = Object.extend({
// REQUIRED: an array of elements to use as the accordion sections
sections: null,
// a function that locates an activator button element given a section element.
// by default it takes a button id from the section's "activator" attibute
getActivator: function(el) {return document.getElementById(el.getAttribute("activator"))},
// shifts each animator's range, for example with options {from:0,to:100,shift:20}
// the animators' ranges will be 0-100, 20-120, 40-140 etc.
shift: 0,
// the first page to show
initialSection: 0,
// if set to true, document.location.hash will be used to preserve the open section across page reloads
rememberance: true,
// constructor arguments to the Animator objects
animatorOptions: {}
}, options || {});
},
show: function(section) {
for (var i=0; i<this.ans.length; i++) {
this.ans[i].seekTo(i > section ? 1 : 0);
}
if (this.options.rememberance) {
document.location.hash = this.rememberanceTexts[section];
}
}
};

View File

@@ -1,69 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
var layer;
function init(){
var mapOptions = {
maxExtent: new OpenLayers.Bounds(-174,18.4,-63.5,71),
maxResolution: 0.25,
projection: "EPSG:4326"};
map = new OpenLayers.Map( 'map', mapOptions );
layer = new OpenLayers.Layer.ArcGIS93Rest( "ArcGIS Server Layer",
"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export",
{layers: "show:0,2"});
map.addLayer(layer);
map.addControl( new OpenLayers.Control.MousePosition() );
map.setCenter(new OpenLayers.LonLat(-115, 45), 0);
}
function enableFilter() {
layer.setLayerFilter(2, "STATE_NAME LIKE '%" + document.getElementById('filterValueField').value + "%'");
layer.redraw();
}
function disableFilter() {
layer.setLayerFilter(2, null);
layer.redraw();
}
function updateButton() {
document.getElementById('filterButton').value = "Show '" +
document.getElementById('filterValueField').value + "' States";
}
</script>
</head>
<body onload="init()">
<h1 id="title">ArcGIS Server 9.3 Rest API Example</h1>
<div id="tags">
ESRI, ArcGIS, REST, filter
</div>
<p id="shortdesc">
Shows the basic use of openlayers using an ArcGIS Server 9.3 Rest API layer
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
This is an example of how to add an ArcGIS Server 9.3 Rest API layer to the OpenLayers window.
</div>
<input id="filterValueField" type="textfield" value="A"/>
<input id="filterButton" type="button" onclick="enableFilter();" value="Filter States"/>
<input type="button" onclick="disableFilter();" value="Show All States"/>
<br>
(Filter is case sensitive.)
</body>
</html>

View File

@@ -1,221 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenLayers ArcGIS Cache Example (MapServer Access)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
<script src="../lib/OpenLayers.js"></script>
<script src="../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
<script type="text/javascript">
var map,
cacheLayer,
testLayer,
//This layer requires meta data about the ArcGIS service. Typically you should use a
//JSONP call to get this dynamically. For this example, we are just going to hard-code
//an example that we got from here (yes, it's very big):
// http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer?f=json&pretty=true
layerInfo = {
"currentVersion" : 10.01,
"serviceDescription" : "This worldwide street map presents highway-level data for the world and street-level data for the United States, Canada, Japan, Southern Africa, and a number of countries in Europe and elsewhere. This comprehensive street map includes highways, major roads, minor roads, railways, water features, administrative boundaries, cities, parks, and landmarks, overlaid on shaded relief imagery for added context. The street map was developed by ESRI using ESRI basemap data, AND road data, USGS elevation data, and UNEP-WCMC parks and protected areas for the world, and Tele Atlas Dynamap<61> and Multinet<65> street data for North America and Europe. Coverage for street-level data in Europe includes Andorra, Austria, Belgium, Czech Republic, Denmark, France, Germany, Great Britain, Greece, Hungary, Ireland, Italy, Luxembourg, Netherlands, Northern Ireland (Belfast only), Norway, Poland, Portugal, San Marino, Slovakia, Spain, Sweden, and Switzerland. Coverage for street-level data elsewhere in the world includes China (Hong Kong only), Colombia, Egypt (Cairo only), Indonesia (Jakarta only), Japan, Mexico (Mexico City only), Russia (Moscow and St. Petersburg only), South Africa, Thailand, and Turkey (Istanbul and Ankara only). For more information on this map, visit us \u003ca href=\"http://goto.arcgisonline.com/maps/World_Street_Map \" target=\"_new\"\u003eonline\u003c/a\u003e.",
"mapName" : "Layers",
"description" : "This worldwide street map presents highway-level data for the world and street-level data for the United States, Canada, Japan, Southern Africa, most countries in Europe, and several other countries. This comprehensive street map includes highways, major roads, minor roads, one-way arrow indicators, railways, water features, administrative boundaries, cities, parks, and landmarks, overlaid on shaded relief imagery for added context. The map also includes building footprints for selected areas in the United States and Europe and parcel boundaries for much of the lower 48 states.\n\nThe street map was developed by ESRI using ESRI basemap data, DeLorme base map layers, AND road data, USGS elevation data, UNEP-WCMC parks and protected areas for the world, Tele Atlas Dynamap<61> and Multinet<65> street data for North America and Europe, and First American parcel data for the United States. Coverage for street-level data in Europe includes Andorra, Austria, Belgium, Czech Republic, Denmark, France, Germany, Great Britain, Greece, Hungary, Ireland, Italy, Luxembourg, Netherlands, Norway, Poland, Portugal, San Marino, Slovakia, Spain, Sweden, and Switzerland. Coverage for street-level data elsewhere in the world includes China (Hong Kong only), Colombia, Egypt (Cairo only), Indonesia (Jakarta only), Japan, Mexico, Russia, South Africa, Thailand, and Turkey (Istanbul and Ankara only). For more information on this map, visit us online at http://goto.arcgisonline.com/maps/World_Street_Map\n",
"copyrightText" : "Sources: ESRI, DeLorme, AND, Tele Atlas, First American, ESRI Japan, UNEP-WCMC, USGS, METI, ESRI Hong Kong, ESRI Thailand, Procalculo Prosis",
"layers" : [
{
"id" : 0,
"name" : "World Street Map",
"parentLayerId" : -1,
"defaultVisibility" : true,
"subLayerIds" : null,
"minScale" : 0,
"maxScale" : 0
}
],
"tables" : [
],
"spatialReference" : {
"wkid" : 102100
},
"singleFusedMapCache" : true,
"tileInfo" : {
"rows" : 256,
"cols" : 256,
"dpi" : 96,
"format" : "JPEG",
"compressionQuality" : 90,
"origin" : {
"x" : -20037508.342787,
"y" : 20037508.342787
},
"spatialReference" : {
"wkid" : 102100
},
"lods" : [
{"level" : 0, "resolution" : 156543.033928, "scale" : 591657527.591555},
{"level" : 1, "resolution" : 78271.5169639999, "scale" : 295828763.795777},
{"level" : 2, "resolution" : 39135.7584820001, "scale" : 147914381.897889},
{"level" : 3, "resolution" : 19567.8792409999, "scale" : 73957190.948944},
{"level" : 4, "resolution" : 9783.93962049996, "scale" : 36978595.474472},
{"level" : 5, "resolution" : 4891.96981024998, "scale" : 18489297.737236},
{"level" : 6, "resolution" : 2445.98490512499, "scale" : 9244648.868618},
{"level" : 7, "resolution" : 1222.99245256249, "scale" : 4622324.434309},
{"level" : 8, "resolution" : 611.49622628138, "scale" : 2311162.217155},
{"level" : 9, "resolution" : 305.748113140558, "scale" : 1155581.108577},
{"level" : 10, "resolution" : 152.874056570411, "scale" : 577790.554289},
{"level" : 11, "resolution" : 76.4370282850732, "scale" : 288895.277144},
{"level" : 12, "resolution" : 38.2185141425366, "scale" : 144447.638572},
{"level" : 13, "resolution" : 19.1092570712683, "scale" : 72223.819286},
{"level" : 14, "resolution" : 9.55462853563415, "scale" : 36111.909643},
{"level" : 15, "resolution" : 4.77731426794937, "scale" : 18055.954822},
{"level" : 16, "resolution" : 2.38865713397468, "scale" : 9027.977411},
{"level" : 17, "resolution" : 1.19432856685505, "scale" : 4513.988705}
]
},
"initialExtent" : {
"xmin" : -20037507.0671618,
"ymin" : -20037507.0671618,
"xmax" : 20037507.0671618,
"ymax" : 20037507.0671619,
"spatialReference" : {
"wkid" : 102100
}
},
"fullExtent" : {
"xmin" : -20037507.0671618,
"ymin" : -19971868.8804086,
"xmax" : 20037507.0671618,
"ymax" : 19971868.8804086,
"spatialReference" : {
"wkid" : 102100
}
},
"units" : "esriMeters",
"supportedImageFormatTypes" : "PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,AI,BMP",
"documentInfo" : {
"Title" : "World Street Map",
"Author" : "ESRI",
"Comments" : "",
"Subject" : "streets, highways, major roads, railways, water features, administrative boundaries, cities, parks, protected areas, landmarks ",
"Category" : "transportation(Transportation Networks) ",
"Keywords" : "World, Global, 2009, Japan, UNEP-WCMC",
"Credits" : ""
},
"capabilities" : "Map"
};
function init(){
//The max extent for spherical mercator
var maxExtent = new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34);
//Max extent from layerInfo above
var layerMaxExtent = new OpenLayers.Bounds(
layerInfo.fullExtent.xmin,
layerInfo.fullExtent.ymin,
layerInfo.fullExtent.xmax,
layerInfo.fullExtent.ymax
);
var resolutions = [];
for (var i=0; i<layerInfo.tileInfo.lods.length; i++) {
resolutions.push(layerInfo.tileInfo.lods[i].resolution);
}
map = new OpenLayers.Map('map', {
maxExtent: maxExtent,
StartBounds: layerMaxExtent,
units: (layerInfo.units == "esriFeet") ? 'ft' : 'm',
resolutions: resolutions,
tileSize: new OpenLayers.Size(layerInfo.tileInfo.width, layerInfo.tileInfo.height),
projection: 'EPSG:' + layerInfo.spatialReference.wkid
});
cacheLayer = new OpenLayers.Layer.ArcGISCache( "AGSCache",
"http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
isBaseLayer: true,
//From layerInfo above
resolutions: resolutions,
tileSize: new OpenLayers.Size(layerInfo.tileInfo.cols, layerInfo.tileInfo.rows),
tileOrigin: new OpenLayers.LonLat(layerInfo.tileInfo.origin.x , layerInfo.tileInfo.origin.y),
maxExtent: layerMaxExtent,
projection: 'EPSG:' + layerInfo.spatialReference.wkid
});
// create Google Mercator layers
testLayer = new OpenLayers.Layer.Google(
"Google Streets",
{'sphericalMercator': true}
);
map.addLayers([testLayer, cacheLayer]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl( new OpenLayers.Control.MousePosition() );
map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
}
</script>
</head>
<body onload="init()">
<h1 id="title">OpenLayers ArcGIS Cache Example (MapServer Access)</h1>
<div id="tags">
arcgis, arcgiscache, cache, tms
</div>
<p id="shortdesc">
Demonstrates the basic initialization of the ArcGIS Cache layer using a prebuilt configuration, and standard tile access.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This example demonstrates using the ArcGISCache layer for
accessing ESRI's ArcGIS Server (AGS) Map Cache tiles through
an AGS MapServer. Toggle the visibility of the AGS layer to
demonstrate how the two maps are lined up correctly.</p>
<h2>Notes on this layer</h2>
<p>A few attempts have been made at this kind of layer before. See
<a href="http://trac.osgeo.org/openlayers/ticket/1967">here</a> and
<a href="http://trac.osgeo.org/openlayers/browser/sandbox/tschaub/arcgiscache/lib/OpenLayers/Layer/ArcGISCache.js">here</a>.
A problem the users encounter is that the tiles seem to "jump around".
This is due to the fact that the max extent for the cached layer actually
changes at each zoom level due to the way these caches are constructed.
We have attempted to use the resolutions, tile size, and tile origin
from the cache meta data to make the appropriate changes to the max extent
of the tile to compensate for this behavior.</p>
You will need to know:
<ul>
<li>Max Extent: The max extent of the layer</li>
<li>Resolutions: An array of resolutions, one for each zoom level</li>
<li>Tile Origin: The location of the tile origin for the cache in the upper left.</li>
<li>Tile Size: The size of each tile in the cache. Commonly 256 x 256</li>
</ul>
<p>It's important that you set the correct values in your layer, and these
values will differ from layer to layer. You can find these values for your
layer in a metadata page in ArcGIS Server.
(ie. <a href="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer">http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer</a>)</p>
<ul>
<li>Max Extent: Full Extent</li>
<li>Resolutions: Tile Info -> Levels of Detail -> Resolution</li>
<li>Tile Origin: Origin -> X,Y</li>
<li>Tile Size: Tile Info -> Height,Width</li>
</ul>
<h2> Other Examples </h2>
<p>This is one of three examples for this layer. You can also configure this
layer to use <a href="arcgiscache_direct.html">prebuilt tiles in a file store
(not a live server).</a> It is also possible to let this
<a href="arcgiscache_jsonp.html">layer 'auto-configure' itself using the
capabilities json object from the server itself when using a live ArcGIS server.</a>
</p>
</div>
</body>
</html>

View File

@@ -1,108 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>ArcGIS Server Map Cache Example (Direct Access)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js" type="text/javascript"></script>
<script src="../lib/OpenLayers/Layer/ArcGISCache.js" type="text/javascript"></script>
<script type="text/javascript">
/* First 4 variables extracted from conf.xml file */
/* Tile layers & map MUST have same projection */
var proj='EPSG:26915';
/* Layer can also accept serverResolutions array
* to deal with situation in which layer resolution array & map resolution
* array are out of sync*/
var mapResolutions = [33.0729828126323,16.9333672000677,8.46668360003387,4.23334180001693,2.11667090000847,1.05833545000423];
/* For this example this next line is not really needed, 256x256 is default.
* However, you would need to change this if your layer had different tile sizes */
var tileSize = new OpenLayers.Size(256,256);
/* Tile Origin is required unless it is the same as the implicit map origin
* which can be affected by several variables including maxExtent for map or base layer */
var agsTileOrigin = new OpenLayers.LonLat(-5120900,9998100);
/* This can really be any valid bounds that the map would reasonably be within */
/* var mapExtent = new OpenLayers.Bounds(293449.454286,4307691.661132,314827.830376,4323381.484178); */
var mapExtent = new OpenLayers.Bounds(289310.8204,4300021.937,314710.8712,4325421.988);
var aerialsUrl = 'http://serverx.esri.com/arcgiscache/dgaerials/Layers/_alllayers';
var roadsUrl = 'http://serverx.esri.com/arcgiscache/DG_County_roads_yesA_backgroundDark/Layers/_alllayers';
var map;
function init(){
map = new OpenLayers.Map('map', {
maxExtent:mapExtent,
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition()]
});
var baseLayer = new OpenLayers.Layer.ArcGISCache('Aerials', aerialsUrl, {
tileOrigin: agsTileOrigin,
resolutions: mapResolutions,
sphericalMercator: true,
maxExtent: mapExtent,
useArcGISServer: false,
isBaseLayer: true,
type: 'jpg',
projection: proj
});
var overlayLayer = new OpenLayers.Layer.ArcGISCache('Roads', roadsUrl, {
tileOrigin: agsTileOrigin,
resolutions: mapResolutions,
sphericalMercator: true,
maxExtent: mapExtent,
useArcGISServer: false,
isBaseLayer: false,
projection: proj
});
map.addLayers([baseLayer, overlayLayer]);
//map.zoomToExtent(new OpenLayers.Bounds(295892.34, 4308521.69, 312825.71, 4316988.37));
map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
}
</script>
</head>
<body onload="init()">
<h1 id="title">ArcGIS Server Map Cache Example (Direct Access)</h1>
<div id="tags">
</div>
<p id="shortdesc">
Demonstrates the basic initialization of the ArcGIS Cache layer using a prebuilt configuration, and direct tile access from a file store.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This example demonstrates using the ArcGISCache layer for
accessing ESRI's ArcGIS Server (AGS) Map Cache tiles directly
via the folder structure and HTTP. Toggle the visibility of the AGS layer to
demonstrate how the two maps are lined up correctly.</p>
<h2>Notes on this Layer</h2>
<p>It's important that you set the correct values in your layer, and these
values will differ between tile sets. You can find these values for your
layer in conf.xml at the root of your cache.
(ie. <a href="http://serverx.esri.com/arcgiscache/dgaerials/Layers/conf.xml">http://serverx.esri.com/arcgiscache/dgaerials/Layers/conf.xml</a>)</p>
<p>For fused map caches this is often http:<i>ServerName</i>/arcgiscache/<i>MapServiceName</i>/Layers <br>
For individual layer caches this is often http:<i>ServerName</i>/arcgiscache/<i>LayerName</i>/Layers </p>
<h2> Other Examples </h2>
<p>This is one of three examples for this layer. You can also configure this
layer to use <a href="arcgiscache_ags.html">prebuilt tiles from a live server.</a> It is also
possible to let this <a href="arcgiscache_jsonp.html">layer 'auto-configure' itself using the capabilities json object from the server itself when using a live ArcGIS server.</a>
</p>
</div>
</body>
</html>

View File

@@ -1,106 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenLayers ArcGIS Cache Example (Autoconfigure with JSONP)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map,
layerURL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer";
function init() {
var jsonp = new OpenLayers.Protocol.Script();
jsonp.createRequest(layerURL, {
f: 'json',
pretty: 'true'
}, initMap);
}
function initMap(layerInfo){
/*
* The initialize function in this layer has the ability to automatically configure
* itself if given the JSON capabilities object from the ArcGIS map server.
* This hugely simplifies setting up a new layer, and switching basemaps when using this technique.
*
* see the 'initialize' function in ArcGISCache.js, or
* see the other two ArcGISCache.js examples for direct manual configuration options
*
*/
var baseLayer = new OpenLayers.Layer.ArcGISCache("AGSCache", layerURL, {
layerInfo: layerInfo
});
/*
* Make sure our baselayer and our map are synced up
*/
map = new OpenLayers.Map('map', {
maxExtent: baseLayer.maxExtent,
units: baseLayer.units,
resolutions: baseLayer.resolutions,
numZoomLevels: baseLayer.numZoomLevels,
tileSize: baseLayer.tileSize,
displayProjection: baseLayer.displayProjection
});
map.addLayers([baseLayer]);
//overlay test layer
//http://openlayers.org/dev/examples/web-mercator.html
var wms = new OpenLayers.Layer.WMS("Highways",
"http://sampleserver1.arcgisonline.com/arcgis/services/Specialty/ESRI_StateCityHighway_USA/MapServer/WMSServer",
{layers: "2", format: "image/gif", transparent: "true"},
{ isBaseLayer: false, wrapDateLine: false }
);
map.addLayers([wms]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition() );
//map.zoomToExtent(new OpenLayers.Bounds(-8341644, 4711236, -8339198, 4712459));
map.zoomToExtent(new OpenLayers.Bounds(-8725663.6225564, 4683718.6735907, -8099491.4868444, 4996804.7414467));
}
</script>
</head>
<body onload="init()">
<h1 id="title">OpenLayers ArcGIS Cache Example (Autoconfigure with JSONP)</h1>
<div id="tags">
arcgis, arcgiscache, cache, tms, jsonp
</div>
<p id="shortdesc">
Demonstrates the basic initialization of the ArcGIS Cache layer by using the server capabilities object.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This example demonstrates using the ArcGISCache layer for
accessing ESRI's ArcGIS Server (AGS) Map Cache tiles normally through
a live AGS MapServer. Toggle the visibility of the overlay to
demonstrate how the two layers are lined up correctly.</p>
<h2>Notes on this Layer</h2>
<p>
This method automatically configures the layer using the capabilities object
generated by the server itself. This page shows how to construct the url for the server capabilities object,
retrieve it using JSONP, and pass it in during construction. Note that in this case,
the layer is constructed before the map. This approach greatly simplifies the
configuration of your map, and works best when all your tiles / overlays are similarly laid out.
If you are using a live AGS map server for your layer, it can be helpful to check your
server configuration using this technique before trying one of the other examples for this layer.
</p>
<h2> Other Examples </h2>
<p>This is one of three examples for this layer. You can also configure this
layer to use <a href="arcgiscache_direct.html">prebuilt tiles in a file store (not a live server).</a>
As well a retrieve <a href="arcgiscache_ags.html">tiles from a live server.</a>
</p>
</div>
</body>
</html>

View File

@@ -1,82 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>ArcIMS Thematic Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var lon = 0;
var lat = 0;
var zoom = 1;
var map, layer;
var query, renderer;
function init() {
OpenLayers.ProxyHost = "proxy.cgi?url=";
map = new OpenLayers.Map('map');
query = {where: "FIPS_ID>100 AND FIPS_ID<200"};
renderer = {
type: 'valuemap',
lookupfield: 'FIPS_ID',
ranges: [
{ lower: 100, upper: 120, symbol: { type: 'simplepolygon', fillcolor: '255,0,0' } },
{ lower: 120, upper: 140, symbol: { type: 'simplepolygon', fillcolor: '255,255,0' } },
{ lower: 140, upper: 160, symbol: { type: 'simplepolygon', fillcolor: '0,255,0' } },
{ lower: 160, upper: 180, symbol: { type: 'simplepolygon', fillcolor: '0,255,255' } },
{ lower: 180, upper: 200, symbol: { type: 'simplepolygon', fillcolor: '0,0,255' } }
]
};
var options = {
layers: [{
id: "1",
visible: true,
query: query,
renderer: renderer
}],
serviceName: "OpenLayers_Sample",
singleTile: true,
async: true
};
layer = new OpenLayers.Layer.ArcIMS(
"Global Sample Map",
"http://sample.azavea.com/servlet/com.esri.esrimap.Esrimap",
options
);
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.addControl(new OpenLayers.Control.LayerSwitcher());
}
</script>
</head>
<body onload="init()">
<h1 id="title">ArcIMS Thematic Example</h1>
<div id="tags">
ESRI, ArcIMS, ArcXML, style, thematic, chloropleth, representation
</div>
<p id="shortdesc">
Shows the advanced use of OpenLayers using a thematic ArcIMS layer
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This is an example of how to add an ArcIMS layer to an OpenLayers map.</p>
<p>Following the ArcXML convention to create a thematic (or chloropleth) map,
a layer definition is created with a query and a renderer to select portions
of the map data, and change their representation in the generated map tiles.</p>
</div>
</body>
</html>

View File

@@ -1,57 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>ArcIMS Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var lon = 0;
var lat = 0;
var zoom = 1;
var map, layer;
function init(){
OpenLayers.ProxyHost = "proxy.cgi?url=";
map = new OpenLayers.Map( 'map' );
var options = {
serviceName: "OpenLayers_Sample",
async: true
};
layer = new OpenLayers.Layer.ArcIMS( "Global Sample Map",
"http://sample.azavea.com/servlet/com.esri.esrimap.Esrimap", options );
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.addControl( new OpenLayers.Control.LayerSwitcher() );
}
</script>
</head>
<body onload="init()">
<h1 id="title">ArcIMS Example</h1>
<div id="tags">
ESRI, ArcIMS
</div>
<p id="shortdesc">
Shows the basic use of OpenLayers using an ArcIMS layer
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
This is an example of how to add an ArcIMS layer to the OpenLayers window.
</div>
</body>
</html>

View File

@@ -1,60 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Attribution Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init(){
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'},
{'attribution': 'Provided by OSGeo'});
var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic",
"http://t1.hypercube.telascience.org/cgi-bin/landsat7",
{layers: "landsat7"},{attribution:"Provided by Telascience"});
var vector = new OpenLayers.Layer.Vector("Simple Geometry",
{attribution:"Vector Attibution in 2nd arg"});
map.addLayers([ol_wms, jpl_wms, vector]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
// OpenLayers.Control.Attribution is one of the default
// controls - only needs to be added when the map instance is
// created with the controls option
//map.addControl(new OpenLayers.Control.Attribution());
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<h1 id="title">Attribution Example</h1>
<div id="tags">
copyright, watermark, logo, attribution, light
</div>
<p id="shortdesc">
Shows the use of the attribution layer option on a number of layer types.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This is an example of how to add an attribution block to the OpenLayers window. In order to use an
attribution block, an attribution parameter must be set in each layer that requires attribution. In
addition, an attribution control must be added to the map, though one is added to all OpenLayers Maps by default.
Be aware that this is a layer <strong>option</strong>: the options hash goes in
different places depending on the layer type you are using.</p>
</div>
</body>
</html>

View File

@@ -1,56 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Vector Behavior Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init(){
map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}
);
var layer = new OpenLayers.Layer.Vector("GML", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "gml/polygon.xml",
format: new OpenLayers.Format.GML()
})
});
map.addLayers([wms, layer]);
map.zoomToExtent(new OpenLayers.Bounds(
-3.92, 44.34, 4.87, 49.55
));
}
</script>
</head>
<body onload="init()">
<h1 id="title">Vector Behavior Example (Fixed/HTTP/GML)</h1>
<div id="tags">
vector, strategy, strategies, protocoll, advanced, gml, http, fixed
</div>
<p id="shortdesc">
Vector layer with a Fixed strategy, HTTP protocol, and GML format.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>The vector layer shown uses the Fixed strategy, the HTTP protocol,
and the GML format.
The Fixed strategy is a simple strategy that fetches features once
and never re-requests new data.
The HTTP protocol makes requests using HTTP verbs. It should be
constructed with a url that corresponds to a collection of features
(a resource on some server).
The GML format is used to serialize features.</p>
</div>
</body>
</html>

View File

@@ -1,43 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Basic Bing Tiles with a Subset of Resolutions Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
.olControlAttribution {
left: 2px;
right: inherit;
bottom: 3px;
line-height: 11px;
}
</style>
</head>
<body>
<h1 id="title">Bing Tiles with a Subset of Resolutions Example</h1>
<div id="tags">
bing tiles restrictedMinZoom numZoomLevels
</div>
<div id="shortdesc">Use Bing with direct tile access</div>
<div id="map" class="smallmap" style="height: 350px;"></div>
<div id="docs">
<p>
This example shows how to use the <code>maxResolution</code> and
<code>numZoomLevels</code> layer properties to restrict
the number of zoom levels displayed on the Bing layer.
</p><p>
See <a target="_blank" href="bing-tiles-restrictedzoom.js">bing-tiles-restrictedzoom.js</a>
for the source code.
</p>
</div>
<script src="../lib/OpenLayers.js"></script>
<script src="bing-tiles-restrictedzoom.js"></script>
</body>
</html>

View File

@@ -1,37 +0,0 @@
// API key for http://openlayers.org. Please get your own at
// http://bingmapsportal.com/ and use that instead.
var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
var map = new OpenLayers.Map('map', {
controls: [
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.LayerSwitcher()
]
});
var road3 = new OpenLayers.Layer.Bing({
name: "Road tiles with 3 zoom levels",
type: "Road",
key: apiKey,
maxResolution: 76.43702827453613,
numZoomLevels: 3
});
var road5 = new OpenLayers.Layer.Bing({
name: "Road tiles with 5 zoom levels",
type: "Road",
key: apiKey,
numZoomLevels: 5
});
var road = new OpenLayers.Layer.Bing({
name: "Road tiles with all zoom levels",
type: "Road",
key: apiKey
});
map.addLayers([road3, road5, road]);
map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
), 1);

View File

@@ -1,39 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Bing Tiles Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
.olControlAttribution {
left: 2px;
right: inherit;
bottom: 3px;
line-height: 11px;
}
</style>
</head>
<body>
<h1 id="title">Basic Bing Tiles Example</h1>
<div id="tags">
bing tiles, light
</div>
<div id="shortdesc">Use Bing with direct tile access</div>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>This example shows a very simple map with Bing layers that use
direct tile access through Bing Maps REST Services.</p><p>See
<a target="_blank" href="bing-tiles.js">bing-tiles.js</a> for the
source code.</p>
</div>
<script src="../lib/OpenLayers.js"></script>
<script src="bing-tiles.js"></script>
</body>
</html>

View File

@@ -1,31 +0,0 @@
// API key for http://openlayers.org. Please get your own at
// http://bingmapsportal.com/ and use that instead.
var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
var map = new OpenLayers.Map( 'map');
var road = new OpenLayers.Layer.Bing({
key: apiKey,
type: "Road",
// custom metadata parameter to request the new map style - only useful
// before May 1st, 2011
metadataParams: {mapVersion: "v1"}
});
var aerial = new OpenLayers.Layer.Bing({
key: apiKey,
type: "Aerial"
});
var hybrid = new OpenLayers.Layer.Bing({
key: apiKey,
type: "AerialWithLabels",
name: "Bing Aerial With Labels"
});
map.addLayers([road, aerial, hybrid]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
// Zoom level numbering depends on metadata from Bing, which is not yet loaded.
var zoom = map.getZoomForResolution(76.43702827453613);
map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
), zoom);

View File

@@ -1,64 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Bing Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script>
// API key for http://openlayers.org. Please get your own at
// http://bingmapsportal.com/ and use that instead.
var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf";
var map;
function init() {
map = new OpenLayers.Map("map");
map.addControl(new OpenLayers.Control.LayerSwitcher());
var road = new OpenLayers.Layer.Bing({
name: "Road",
key: apiKey,
type: "Road"
});
var hybrid = new OpenLayers.Layer.Bing({
name: "Hybrid",
key: apiKey,
type: "AerialWithLabels"
});
var aerial = new OpenLayers.Layer.Bing({
name: "Aerial",
key: apiKey,
type: "Aerial"
});
map.addLayers([road, hybrid, aerial]);
map.setCenter(new OpenLayers.LonLat(-110, 45), 3);
}
</script>
</head>
<body onload="init()">
<h1 id="title">Bing Example</h1>
<div id="tags">
Bing, Microsoft, Virtual Earth, light
</div>
<p id="shortdesc">
Demonstrates the use of Bing layers.
</p>
<div id="map" class="smallmap"></div>
<div id="docs"><p>This example demonstrates the ability to create layers
using tiles from Bing maps.</p></div>
</body>
</html>

View File

@@ -1,81 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Bootstraped OpenLayers</title>
<link rel="stylesheet" href="../theme/default/style.css">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
padding-top: 60px;
padding-bottom: 40px;
}
#map {
height: 350px;
background-color: #eee;
}
.olControlAttribution {
bottom: 3px;
left: 10px;
line-height: 9px;
font-size: 9px;
color: #ccc;
}
</style>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-responsive.min.css" rel="stylesheet">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="brand" href="/">openlayers.org</a>
<ul class="nav">
<li>
<a href="./">
<i class="icon-globe icon-white"></i> examples
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container-fluid" ng-controller="AlertsCtrl">
<div class="row-fluid">
<div class="span7">
<div id="map"></div>
</div>
<div class="span5">
<h4>OpenLayers and Bootstrap</h4>
<p>
This example demonstrates an OpenLayers map in a fluid
layout using Bootstrap CSS.
</p>
<p>
Note that the OpenLayers stylesheet is loaded before
Bootstrap. The Bootstrap CSS sets the maximum width for
images to be 100% (of their containing element).
</p>
<pre><code>img {
max-width: 100%;
}
</code></pre>
<p>
This causes problems for images that you might want to be
bigger than their containing element (e.g. big tile in small
map viewport). To overcome this, the OpenLayers CSS
overrides this <code>max-width</code> setting. If you are
not loading the OpenLayers default CSS or are having trouble
with tile sizing and Bootstrap, add the following to your
markup:
</p>
<pre><code>&lt;style>
img.olTileImage {
max-width: none;
}
&lt;/style></code></pre>
</div>
</div>
</div>
<script src="../lib/OpenLayers.js"></script>
<script src="bootstrap.js"></script>
</body>
</html>

31
examples/bootstrap.js vendored
View File

@@ -1,31 +0,0 @@
var map = new OpenLayers.Map({
div: "map",
projection: "EPSG:900913",
layers: [
new OpenLayers.Layer.XYZ(
"Imagery",
[
"http://oatile1.mqcdn.com/naip/${z}/${x}/${y}.png",
"http://oatile2.mqcdn.com/naip/${z}/${x}/${y}.png",
"http://oatile3.mqcdn.com/naip/${z}/${x}/${y}.png",
"http://oatile4.mqcdn.com/naip/${z}/${x}/${y}.png"
],
{
attribution: "Tiles Courtesy of <a href='http://open.mapquest.co.uk/' target='_blank'>MapQuest</a>. Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency. <img src='http://developer.mapquest.com/content/osm/mq_logo.png' border='0'>",
transitionEffect: "resize",
wrapDateLine: true
}
)
],
controls: [
new OpenLayers.Control.Navigation({
dragPanOptions: {
enableKinetic: true
}
}),
new OpenLayers.Control.Zoom(),
new OpenLayers.Control.Attribution()
],
center: [0, 0],
zoom: 1
});

View File

@@ -1,59 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Boxes Vector Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var box_extents = [
[-10, 50, 5, 60],
[-75, 41, -71, 44],
[-122.6, 37.6, -122.3, 37.9],
[10, 10, 20, 20]
];
var map;
function init(){
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
var boxes = new OpenLayers.Layer.Vector( "Boxes" );
for (var i = 0; i < box_extents.length; i++) {
ext = box_extents[i];
bounds = OpenLayers.Bounds.fromArray(ext);
box = new OpenLayers.Feature.Vector(bounds.toGeometry());
boxes.addFeatures(box);
}
map.addLayers([ol_wms, boxes]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var sf = new OpenLayers.Control.SelectFeature(boxes);
map.addControl(sf);
sf.activate();
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<h1 id="title">Boxes Example Vector</h1>
<div id="tags">
box, vector, annotation, light
</div>
<p id="shortdesc">
Demonstrate marker and box type annotations on a map.
</p>
<div id="map" class="smallmap"></div>
<div id="docs"></div>
</body>
</html>

View File

@@ -1,58 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Boxes Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var box_extents = [
[-10, 50, 5, 60],
[-75, 41, -71, 44],
[-122.6, 37.6, -122.3, 37.9],
[10, 10, 20, 20]
];
var map;
function init(){
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
var boxes = new OpenLayers.Layer.Boxes( "Boxes" );
for (var i = 0; i < box_extents.length; i++) {
ext = box_extents[i];
bounds = OpenLayers.Bounds.fromArray(ext);
box = new OpenLayers.Marker.Box(bounds);
box.events.register("click", box, function (e) {
this.setBorder("yellow");
});
boxes.addMarker(box);
}
map.addLayers([ol_wms, boxes]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<h1 id="title">Boxes Example</h1>
<div id="tags">
box, annotation
</div>
<p id="shortdesc">
Demonstrate marker and box type annotations on a map.
</p>
<div id="map" class="smallmap"></div>
<div id="docs"></div>
</body>
</html>

View File

@@ -1,152 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Browser Detection</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript" src="browser.js"></script>
<style type="text/css">
.olControlAttribution {
bottom: 5px;
}
.tester {
margin: 3px;
}
</style>
<script type="text/javascript">
function init() {
var result = document.getElementById('result');
result.innerHTML = result.innerHTML + "Browser CodeName: " + navigator.appCodeName + '<br>';
result.innerHTML = result.innerHTML + "Browser Name: " + navigator.appName + '<br>';
result.innerHTML = result.innerHTML + "Browser Version: " + navigator.appVersion + '<br>';
result.innerHTML = result.innerHTML + "Cookies Enabled: " + navigator.cookieEnabled + '<br>';
result.innerHTML = result.innerHTML + "Platform: " + navigator.platform + '<br>';
result.innerHTML = result.innerHTML + 'User agent: ' + navigator.userAgent + '<br>';
divResult('mouse', 'click', null, result);
divResult('mouse', 'dblclick', null, result);
divResult('mouse', 'mousedown', null, result);
divResult('mouse', 'mouseup', null, result);
divResult('mouse', 'mouseover', null, result);
divResult('mouse', 'mousemove', null, result);
divResult('mouse', 'mouseout', null, result);
divResult('key', 'keypress', null, result);
divResult('key', 'keydown', null, result);
divResult('key', 'keyup', null, result);
divResult('HTML', 'load', null, result);
divResult('HTML', 'unload', window, result);
divResult('HTML', 'abort', null, result);
divResult('HTML', 'error', null, result);
divResult('view', 'resize', window, result);
divResult('view', 'scroll', null, result);
divResult('form', 'submit', null, result);
divResult('form', 'reset', null, result);
divResult('form control', 'select', null, result);
divResult('form control', 'change', null, result);
divResult('activation', 'focus', null, result);
divResult('activation', 'blur', null, result);
divResult('touch', 'touchstart', null, result);
divResult('touch', 'touchend', null, result);
divResult('touch', 'touchmove', null, result);
divResult('touch', 'touchcancel', null, result);
divResult('gesture', 'gesturestart', null, result);
divResult('gesture', 'gesturechange', null, result);
divResult('gesture', 'gestureend', null, result);
divResult('HTML5', 'hashchange', document.body, result);
divResult('HTML5', 'online', document.body, result);
divResult('HTML5', 'offline', document.body, result);
divResult('HTML5', 'message', window, result);
divResult('HTML5', 'undo', document.body, result);
divResult('HTML5', 'redo', document.body, result);
divResult('HTML5', 'storage', window, result);
divResult('HTML5', 'popstate', window, result);
divResult('HTML5', 'canplay', document.createElement('video'), result);
divResult('HTML5', 'seeking', document.createElement('video'), result);
divResult('HTML5', 'seekend', document.createElement('video'), result);
divResult('orientation', 'deviceorientation', window, result);
divResult('orientation', 'mozorientation', window, result);
divResult('orientation', 'devicemotion', window, result);
}
</script>
</head>
<body onload="init()">
<h1 id="title">Browser detection</h1>
<div id="tags">
browser, vendor, mobile, events, HTML5, gesture, touch
</div>
<p id="shortdesc">
The goal of this script is to inform about the capacity of the browser used by the user.
</p>
<div id="docs">
<p>
See the <a href="browser.js" target="_blank">
browser.js source</a> to see how this is done.
</p>
</div>
<h1>Your browser information</h1>
<div id="result">
</div>
<h1>Click or touch the red square to get information about the selected events</h1>
<div>
<div class="tester">
<INPUT TYPE=CHECKBOX ID="clickID" checked>click<BR>
<INPUT TYPE=CHECKBOX ID="dblclickID">dblclick<BR>
<INPUT TYPE=CHECKBOX ID="mousedownID">mousedown<BR>
<INPUT TYPE=CHECKBOX ID="mouseupID">mouseup<BR>
<INPUT TYPE=CHECKBOX ID="mouseoverID">mouseover<BR>
<INPUT TYPE=CHECKBOX ID="mousemoveID">mousemove<BR>
<INPUT TYPE=CHECKBOX ID="mouseoutID">mouseout<BR>
<INPUT TYPE=CHECKBOX ID="touchstartID">touchstart<BR>
<INPUT TYPE=CHECKBOX ID="touchendID">touchend<BR>
<INPUT TYPE=CHECKBOX ID="touchmoveID">touchmove<BR>
<INPUT TYPE=CHECKBOX ID="touchcancelID">touchcancel<BR>
<INPUT TYPE=CHECKBOX ID="gesturestartID">gesturestart<BR>
<INPUT TYPE=CHECKBOX ID="gesturechangeID">gesturechange<BR>
<INPUT TYPE=CHECKBOX ID="gestureendID">gestureend<BR>
</div>
<div style="height: 200px;width: 200px;" class="tester">
<div id="box" style="height: 200px; width: 200px; background: none repeat scroll 0% 0% red; "
onclick="click(event)"
ondblclick="dblclick(event)"
onmousedown="mousedown(event)"
onmouseup="mouseup(event)"
onmouseover="mouseover(event)"
onmousemove="mousemove(event)"
onmouseout="mouseout(event)"
ontouchstart="touchstart(event)"
ontouchend="touchend(event)"
ontouchmove="touchmove(event)"
ontouchcancel="touchcancel(event)"
ongesturestart="gesturestart(event)"
ongesturechange="gesturechange(event)"
ongestureend="gestureend(event)">
</div>
</div>
<div id="log" class="tester"></div>
</div>
</body>
</html>

View File

@@ -1,241 +0,0 @@
var isEventSupported = (function(undef) {
var TAGNAMES = {
'select':'input',
'change':'input',
'submit':'form',
'reset':'form',
'error':'img',
'load':'img',
'abort':'img'
};
function isEventSupported(eventName, element) {
element = element || document.createElement(TAGNAMES[eventName] || 'div');
eventName = 'on' + eventName;
var isSupported = (eventName in element);
if (!isSupported) {
// if it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
if (!element.setAttribute) {
element = document.createElement('div');
}
if (element.setAttribute && element.removeAttribute) {
element.setAttribute(eventName, '');
isSupported = typeof element[eventName] == 'function';
// if property was created, "remove it" (by setting value to `undefined`)
if (typeof element[eventName] != 'undefined') {
element[eventName] = undef;
}
element.removeAttribute(eventName);
}
}
element = null;
return isSupported;
}
return isEventSupported;
})();
function divResult(category, name, element, div) {
div.innerHTML = div.innerHTML + category + " " + name + ": ";
div.innerHTML = div.innerHTML + (
isEventSupported(name, element)
? '<span style="background-color:green;color:white;">true</span></td>'
: '<span style="background-color:red;color:white;">false</span></td>'
);
div.innerHTML = div.innerHTML + "<br>";
}
var counter = 1;
function log(title, detail) {
var logDiv = document.getElementById("log");
idString = "'id" + counter + "'";
var newlink = document.createElement('a');
newlink.setAttribute('href', "javascript:toggle_visibility(" + idString + ")");
newlink.innerHTML = counter + ". " + title;
var br1 = document.createElement('br');
logDiv.appendChild(newlink);
logDiv.appendChild(br1);
var childDiv = document.createElement('div');
childDiv.setAttribute("id", idString.replace("'", "").replace("'", ""));
childDiv.setAttribute("style", 'display: none; margin-left : 5px;');
childDiv.innerHTML = detail;
var br2 = document.createElement('br');
logDiv.appendChild(childDiv);
counter = counter + 1;
}
function inspect(obj) {
if (typeof obj === "undefined") {
return "undefined";
}
var _props = [];
for (var i in obj) {
_props.push(i + " : " + obj[i]);
}
return " {" + _props.join(",<br>") + "} ";
}
function click(e) {
if (document.getElementById("clickID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function dblclick(e) {
if (document.getElementById("dblclickID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function mousedown(e) {
if (document.getElementById("mousedownID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function mouseup(e) {
if (document.getElementById("mouseupID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function mouseover(e) {
if (document.getElementById("mouseoverID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function mousemove(e) {
if (document.getElementById("mousemoveID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function mouseout(e) {
if (document.getElementById("mouseoutID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function touchstart(e) {
if (document.getElementById("touchstartID").checked) {
var box = document.getElementById("box");
var result = inspect(e);
for (var i = 0; i < e.touches.length; i++) {
result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
}
log(e.type, result);
if (e.preventDefault) e.preventDefault();
}
return false;
}
function touchend(e) {
if (document.getElementById("touchendID").checked) {
var box = document.getElementById("box");
var result = inspect(e);
for (var i = 0; i < e.touches.length; i++) {
result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
}
log(e.type, result);
if (e.preventDefault) e.preventDefault();
}
return false;
}
function touchmove(e) {
if (document.getElementById("touchmoveID").checked) {
var targetEvent = e.touches.item(0);
var box = document.getElementById("box");
box.style.left = targetEvent.clientX + "px";
box.style.top = targetEvent.clientY + "px";
var result = inspect(e);
for (var i = 0; i < e.touches.length; i++) {
result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
}
log(e.type, result);
if (e.preventDefault) e.preventDefault();
}
return false;
}
function touchcancel(e) {
if (document.getElementById("touchcancelID").checked) {
var box = document.getElementById("box");
var result = inspect(e);
for (var i = 0; i < e.touches.length; i++) {
result = result + "<br> Touches nr." + i + " <br>" + inspect(e.touches[i]);
}
log(e.type, result);
if (e.preventDefault) e.preventDefault();
}
return false;
}
function gesturestart(e) {
if (document.getElementById("gesturestartID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function gesturechange(e) {
if (document.getElementById("gesturechangeID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function gestureend(e) {
if (document.getElementById("gestureendID").checked) {
var box = document.getElementById("box");
log(e.type, inspect(e));
if (e.preventDefault) e.preventDefault();
}
return false;
}
function toggle_visibility(id) {
var e = document.getElementById(id);
if (e.style.display == 'block') {
e.style.display = 'none';
} else {
e.style.display = 'block';
}
}

View File

@@ -1,54 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Buffer Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var lon = 0;
var lat = 0;
var zoom = 2;
var map, layer;
function init(){
map = new OpenLayers.Map( 'map' );
layer = new OpenLayers.Layer.WMS( "0 buffer: OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}, {'buffer':0} );
map.addLayer(layer);
layer = new OpenLayers.Layer.WMS( "1 buffer: OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}, {'buffer':1} );
map.addLayer(layer);
layer = new OpenLayers.Layer.WMS( "4 buffer: OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}, {'buffer':4} );
map.addLayer(layer);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}
</script>
</head>
<body onload="init()">
<h1 id="title">Buffer Example</h1>
<div id="tags">
buffer, performance, tile, light
</div>
<p id="shortdesc">
This example shows the use of the buffer layer option for any layer that inherits from OpenLayers.Layer.Grid.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
Use the buffer property to control how many tiles are included
outside the visible map area. Default is 0.
</div>
</body>
</html>

View File

@@ -1,36 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Cache Read Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script src="cache-read.js"></script>
</head>
<body onload="init()">
<h1 id="title">Cache Read Example</h1>
<div id="tags">
mobile, local storage, persistence, cache, html5
</div>
<div id="shortdesc">Caching viewed tiles</div>
<div id="map" class="smallmap"></div>
<div id="status"></div>
<br>
<div id="docs">
<p>This example shows how to use the CacheRead control to fetch cached
tiles from the browser's Local Storage. As you pan and zoom the map,
you can see how the number of cache hits incrases as you browse regions
that are available in the cache.</p>
<p>To fill the cache with tiles, switch to the
<a href="cache-write.html">cache-write.html</a> example.</p>
<p>See <a href="cache-read.js">cache-read.js</a> for the source
code.</p>
</div>
</body>
</html>

View File

@@ -1,36 +0,0 @@
var map, cacheRead;
function init() {
map = new OpenLayers.Map({
div: "map",
projection: "EPSG:900913",
layers: [
new OpenLayers.Layer.WMS("OSGeo", "http://vmap0.tiles.osgeo.org/wms/vmap0", {
layers: "basic"
}, {
eventListeners: {
tileloaded: updateHits
}
})
],
center: [0, 0],
zoom: 1
});
cacheRead = new OpenLayers.Control.CacheRead();
map.addControl(cacheRead);
// User interface
var status = document.getElementById("status"),
hits = 0;
// update the number of cached tiles and detect local storage support
function updateHits(evt) {
hits += evt.tile.url.substr(0, 5) === "data:";
if (window.localStorage) {
status.innerHTML = hits + " cache hits.";
} else {
status.innerHTML = "Local storage not supported. Try a different browser.";
}
}
}

View File

@@ -1,37 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Cache Write Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script>OpenLayers.Console = window.console || OpenLayers.Console;</script>
<script src="cache-write.js"></script>
</head>
<body onload="init()">
<h1 id="title">Cache Write Example</h1>
<div id="tags">
mobile, local storage, persistence, cache, html5
</div>
<div id="shortdesc">Caching viewed tiles</div>
<div id="map" class="smallmap"></div>
<div>Cache status: <span id="status"></span></div>
<div><button id="clear">Clear cache</button></div>
<br>
<div id="docs">
<p>This example shows how to use the CacheWrite control to cache the
tiles. Caching is turned on, and as you pan and zoom the map, every
tile that is loaded is also copied to the browsers Local Storage.</p>
<p>To use the cached tiles, switch to the
<a href="cache-read.html">cache-read.html</a> example.</p>
<p>See <a href="cache-write.js">cache-write.js</a> for the source
code.</p>
</div>
</body>
</html>

View File

@@ -1,46 +0,0 @@
// Use proxy to get same origin URLs for tiles that don't support CORS.
OpenLayers.ProxyHost = "proxy.cgi?url=";
var map, cacheWrite;
function init() {
map = new OpenLayers.Map({
div: "map",
projection: "EPSG:900913",
layers: [
new OpenLayers.Layer.WMS(
"OSGeo", "http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: "basic"}
)
],
center: [0, 0],
zoom: 1
});
cacheWrite = new OpenLayers.Control.CacheWrite({
autoActivate: true,
imageFormat: "image/jpeg",
eventListeners: {
cachefull: function() { status.innerHTML = "Cache full."; }
}
});
map.addControl(cacheWrite);
// User interface
var status = document.getElementById("status");
document.getElementById("clear").onclick = function() {
OpenLayers.Control.CacheWrite.clearCache();
updateStatus();
};
// update the number of cached tiles and detect local storage support
map.layers[0].events.on({'tileloaded': updateStatus});
function updateStatus() {
if (window.localStorage) {
status.innerHTML = localStorage.length + " entries in cache.";
} else {
status.innerHTML = "Local storage not supported. Try a different browser.";
}
}
}

View File

@@ -1,31 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenLayers Canvas Hit Detection Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
</head>
<body>
<h1 id="title">Feature Hit Detection with Canvas</h1>
<p id="shortdesc">
Demonstrates detection of feature hits with the canvas renderer.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
Click on the features above to see them selected. This example
uses the Canvas renderer so it only works on browsers where
canvas is supported.
</p>
<p>
View the <a href="canvas-hit-detection.js" target="_blank">canvas-hit-detection.js</a>
source to see how this is done.
</p>
</div>
<script src="canvas-hit-detection.js"></script>
</body>
</html>

View File

@@ -1,88 +0,0 @@
// create some sample features
var Feature = OpenLayers.Feature.Vector;
var Geometry = OpenLayers.Geometry;
var features = [
new Feature(new Geometry.Point(-90, 45)),
new Feature(
new Geometry.Point(0, 45),
{cls: "one"}
),
new Feature(
new Geometry.Point(90, 45),
{cls: "two"}
),
new Feature(
Geometry.fromWKT("LINESTRING(-110 -60, -80 -40, -50 -60, -20 -40)")
),
new Feature(
Geometry.fromWKT("POLYGON((20 -20, 110 -20, 110 -80, 20 -80, 20 -20), (40 -40, 90 -40, 90 -60, 40 -60, 40 -40))")
)
];
// create rule based styles
var Rule = OpenLayers.Rule;
var Filter = OpenLayers.Filter;
var style = new OpenLayers.Style({
pointRadius: 10,
strokeWidth: 3,
strokeOpacity: 0.7,
strokeColor: "navy",
fillColor: "#ffcc66",
fillOpacity: 1
}, {
rules: [
new Rule({
filter: new Filter.Comparison({
type: "==",
property: "cls",
value: "one"
}),
symbolizer: {
externalGraphic: "../img/marker-blue.png"
}
}),
new Rule({
filter: new Filter.Comparison({
type: "==",
property: "cls",
value: "two"
}),
symbolizer: {
externalGraphic: "../img/marker-green.png"
}
}),
new Rule({
elseFilter: true,
symbolizer: {
graphicName: "circle"
}
})
]
});
var layer = new OpenLayers.Layer.Vector(null, {
styleMap: new OpenLayers.StyleMap({
"default": style,
select: {
fillColor: "red",
pointRadius: 13,
strokeColor: "yellow",
strokeWidth: 3
}
}),
isBaseLayer: true,
renderers: ["Canvas"]
});
layer.addFeatures(features);
var map = new OpenLayers.Map({
div: "map",
layers: [layer],
center: new OpenLayers.LonLat(0, 0),
zoom: 0
});
var select = new OpenLayers.Control.SelectFeature(layer);
map.addControl(select);
select.activate();

View File

@@ -1,53 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenLayers Canvas Inspector</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="../theme/default/google.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script src="Jugl.js"></script>
<style>
#template {
display: none;
}
#inspector table {
border-right: 1px solid #666;
border-bottom: 1px solid #666;
}
#inspector table td {
font-size: 9px;
text-align: center;
width: 60px;
height: 60px;
border-top: 1px solid #666;
border-left: 1px solid #666;
}
</style>
</head>
<body>
<h1 id="title">Canvas Inspector</h1>
<p id="shortdesc">
Displays pixel values for canvas context.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
View the <a href="canvas-inspector.js" target="_blank">canvas-inspector.js</a>
source to see how this is done.
</p>
</div>
<div id="inspector">
</div>
<table id="template">
<tr jugl:repeat="row new Array(rows)">
<td jugl:repeat="col new Array(cols)"
jugl:attributes="id 'c' + repeat.col.index + 'r' + repeat.row.index">
&nbsp;
</td>
</tr>
</table>
<script src="canvas-inspector.js"></script>
</body>
</html>

View File

@@ -1,91 +0,0 @@
var features = [
new OpenLayers.Feature.Vector(
OpenLayers.Geometry.fromWKT(
"LINESTRING(-90 90, 90 -90)"
),
{color: "#0f0000"}
),
new OpenLayers.Feature.Vector(
OpenLayers.Geometry.fromWKT(
"LINESTRING(100 50, -100 -50)"
),
{color: "#00ff00"}
)
];
var layer = new OpenLayers.Layer.Vector(null, {
styleMap: new OpenLayers.StyleMap({
strokeWidth: 3,
strokeColor: "${color}"
}),
isBaseLayer: true,
renderers: ["Canvas"],
rendererOptions: {hitDetection: true}
});
layer.addFeatures(features);
var map = new OpenLayers.Map({
div: "map",
layers: [layer],
center: new OpenLayers.LonLat(0, 0),
zoom: 0
});
var xOff = 2, yOff = 2;
var rows = 1 + (2 * yOff);
var cols = 1 + (2 * xOff);
var template = new jugl.Template("template");
template.process({
clone: true,
parent: "inspector",
context: {
rows: rows,
cols: cols
}
});
function isDark(r, g, b, a) {
a = a / 255;
var da = 1 - a;
// convert color values to decimal (assume white background)
r = (a * r / 255) + da;
g = (a * g / 255) + da;
b = (a * b / 255) + da;
// use w3C brightness measure
var brightness = (r * 0.299) + (g * 0.587) + (b * 0.144);
return brightness < 0.5;
}
var context = layer.renderer.canvas; //layer.renderer.hitContext;
var size = map.getSize();
map.events.on({
mousemove: function(event) {
var x = event.xy.x - 1; // TODO: fix this elsewhere
var y = event.xy.y;
if ((x >= xOff) && (x < size.w - xOff) && (y >= yOff) && (y < size.h - yOff)) {
var data = context.getImageData(x - xOff, y - yOff, rows, cols).data;
var offset, red, green, blue, alpha, cell;
for (var i=0; i<cols; ++i) {
for (var j=0; j<rows; ++j) {
offset = (i * 4) + (j * 4 * cols);
red = data[offset];
green = data[offset + 1];
blue = data[offset + 2];
alpha = data[offset + 3];
cell = document.getElementById("c" + i + "r" + j);
cell.innerHTML = "R: " + red + "<br>G: " + green + "<br>B: " + blue + "<br>A: " + alpha;
cell.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + (alpha / 255) + ")";
cell.style.color = isDark(red, green, blue, alpha) ? "#ffffff" : "#000000";
}
}
}
}
});

View File

@@ -1,35 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>Canvas Renderer Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script>
<script src="canvas.js"></script>
</head>
<body onload="init()">
<h1 id="title">Canvas Renderer Example</h1>
<div id="tags">
canvas, renderer, advanced,
</div>
<p id="shortdesc">
Demonstrates the use of the canvas renderer with a vector layer.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
This example shows a vector layer that uses the Canvas renderer
where available. The order of the renderers given in the layer
options is used to locate the first available renderer.
</p>
<p>
See the <a href="canvas.js" target="_blank">canvas.js source</a>
to see how this is done.
</p>
</div>
</body>
</html>

View File

@@ -1,57 +0,0 @@
var map, layer, styleMap;
OpenLayers.ProxyHost = "proxy.cgi?url=";
function init() {
map = new OpenLayers.Map({
div: "map",
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326")
});
var g = new OpenLayers.Layer.Google("Google Layer", {
sphericalMercator: true
});
map.addLayers([g]);
// prepare to style the data
styleMap = new OpenLayers.StyleMap({
strokeColor: "black",
strokeWidth: 2,
strokeOpacity: 0.5,
fillOpacity: 0.2
});
// create a color table for state FIPS code
var colors = ["red", "orange", "yellow", "green", "blue", "purple"];
var code, fips = {};
for(var i=1; i<=66; ++i) {
code = "0" + i;
code = code.substring(code.length - 2);
fips[code] = {fillColor: colors[i % colors.length]};
}
// add unique value rules with your color lookup
styleMap.addUniqueValueRules("default", "STATE_FIPS", fips);
// create a vector layer using the canvas renderer (where available)
var wfs = new OpenLayers.Layer.Vector("States", {
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
srsName: "EPSG:900913",
url: "http://v2.suite.opengeo.org/geoserver/wfs",
featureType: "states",
featureNS: "http://usa.opengeo.org"
}),
styleMap: styleMap,
renderers: ["Canvas", "SVG", "VML"]
});
map.addLayer(wfs);
// if you want to use Geographic coords, transform to ESPG:900913
var ddBounds = new OpenLayers.Bounds(
-73.839111,40.287907,-68.214111,44.441624
);
map.zoomToExtent(
ddBounds.transform(map.displayProjection, map.getProjectionObject())
);
}

View File

@@ -1,71 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Reading Features From CartoDB using GeoJSON</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<script src="../lib/OpenLayers.js"></script>
</head>
<body>
<h1 id="title">Reading Features From CartoDB using GeoJSON</h1>
<div id="tags">
protocol, script, cartodb
</div>
<p id="shortdesc">
Demonstrates how to load features on OpenLayers using CartoDB SQL API.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
<a href="http://cartodb.com/">CartoDB</a> is an Open Source
Geopatial Database on the cloud. It allows you to import your
data in shapefiles, KML, OpenStreeMap files, CSV, etc. and
then analyze and visualize it. Internally CartoDB uses PostGIS
2.0 so all functionality in PostGIS can be used straight
away. CartoDB exposes two APIS. One
to <a href="http://developers.cartodb.com/documentation/cartodb-apis.html#maps_api">generate maps</a>
as tiles with interactivity, and another <a href="http://developers.cartodb.com/documentation/cartodb-apis.html#sql_api">SQL API</a>
to retrieve vector data using among other formats, GeoJSON. In
this example we do a very simple query to obtain all protected
areas in Costa Rica from a public table. You can adapt the SQL
to include where clauses or complicate geospatial queries.
</p>
<p>
View the source code of this page to see how this is done. And
check the table on CartoDB
for <a href="https://examples.cartodb.com/tables/costa_rica_pa/public#/map">Protected Areas in Costa Rica</a>
</p>
</div>
<script>
var map = new OpenLayers.Map({
div: "map",
layers: [
new OpenLayers.Layer.OSM(),
new OpenLayers.Layer.Vector("Vectors", {
projection: new OpenLayers.Projection("EPSG:4326"),
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.Script({
url: "http://examples.cartodb.com/api/v2/sql",
params: {
q: "select * from costa_rica_pa LIMIT 50",
format: "geojson"
},
format: new OpenLayers.Format.GeoJSON({
ignoreExtraDims: true
}),
callbackKey: "callback"
}),
eventListeners: {
"featuresadded": function() {
this.map.zoomToExtent(this.getDataExtent());
}
}
})
]
});
</script>
</body>
</html>

View File

@@ -1,232 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Click Handler Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
#map {
width: 340px;
height: 170px;
border: 1px solid gray;
}
#west {
width: 350px;
}
#east {
position: absolute;
left: 370px;
top: 4em;
}
table td {
text-align: center;
margin: 0;
border: 1px solid gray;
}
textarea.output {
text-align: left;
font-size: 0.9em;
width: 250px;
height: 65px;
overflow: auto;
}
</style>
<script src="../lib/Firebug/firebug.js"></script>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.onClick,
'dblclick': this.onDblclick
}, this.handlerOptions
);
},
onClick: function(evt) {
var output = document.getElementById(this.key + "Output");
var msg = "click " + evt.xy;
output.value = output.value + msg + "\r\n";
},
onDblclick: function(evt) {
var output = document.getElementById(this.key + "Output");
var msg = "dblclick " + evt.xy;
output.value = output.value + msg + "\n";
}
});
var map, controls;
function init(){
map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}
);
map.addLayers([layer]);
controls = {
"single": new OpenLayers.Control.Click({
handlerOptions: {
"single": true
}
}),
"double": new OpenLayers.Control.Click({
handlerOptions: {
"single": false,
"double": true
}
}),
"both": new OpenLayers.Control.Click({
handlerOptions: {
"single": true,
"double": true
}
}),
"drag": new OpenLayers.Control.Click({
handlerOptions: {
"single": true,
"pixelTolerance": null
}
}),
"stopsingle": new OpenLayers.Control.Click({
handlerOptions: {
"single": true,
"stopSingle": true
}
}),
"stopdouble": new OpenLayers.Control.Click({
handlerOptions: {
"single": false,
"double": true,
"stopDouble": true
}
})
};
var props = document.getElementById("props");
var control;
for(var key in controls) {
control = controls[key];
// only to route output here
control.key = key;
map.addControl(control);
}
map.zoomToMaxExtent();
}
function toggle(key) {
var control = controls[key];
if(control.active) {
control.deactivate();
} else {
control.activate();
}
var status = document.getElementById(key + "Status");
status.innerHTML = control.active ? "on" : "off";
var output = document.getElementById(key + "Output");
output.value = "";
}
</script>
</head>
<body onload="init()">
<h1 id="title">Click Handler Example</h1>
<div id="west">
<div id="tags">
event, events, propagation, advanced
</div>
<p id="shortdesc">
This example shows the use of the click handler.
</p>
<div id="map" class="smallmap"></div>
<p>
The click handler can be used to gain more flexibility over handling
click events. The handler can be constructed with options to handle
only single click events, to handle single and double-click events,
to ignore clicks that include a drag, and to stop propagation of
single and/or double-click events. A single click is a click that
is not followed by another click for more than 300ms. This delay
is configured with the delay property.
</p>
<p>
The options to stop single and double clicks have to do with
stopping event propagation on the map events listener queue
(not stopping events from cascading to other elements). The
ability to stop an event from propagating has to do with the
order in which listeners are registered. With stopSingle or
stopDouble true, a click handler will stop propagation to all
listeners that were registered (or all handlers that were
activated) before the click handler was activated. So, for
example, activating a click handler with stopDouble true after
the navigation control is active will stop double-clicks from
zooming in.
</p>
</div>
<div id="east">
<table>
<caption>Controls with click handlers (toggle on/off to clear output)</caption>
<tbody>
<tr>
<td>single only</td>
<td><button id="singleStatus" onclick="toggle('single')">off</button></td>
<td><textarea class="output" id="singleOutput"></textarea></td>
</tr>
<tr>
<td>double only</td>
<td><button id="doubleStatus" onclick="toggle('double')">off</button></td>
<td><textarea class="output" id="doubleOutput"></textarea></td>
</tr>
<tr>
<td>both</td>
<td><button id="bothStatus" onclick="toggle('both')">off</button></td>
<td><textarea class="output" id="bothOutput"></textarea></td>
</tr>
<tr>
<td>single with drag</td>
<td><button id="dragStatus" onclick="toggle('drag')">off</button></td>
<td><textarea class="output" id="dragOutput"></textarea></td>
</tr>
<tr>
<td>single with stop</td>
<td><button id="stopsingleStatus" onclick="toggle('stopsingle')">off</button></td>
<td><textarea class="output" id="stopsingleOutput"></textarea></td>
</tr>
<tr>
<td>double with stop</td>
<td><button id="stopdoubleStatus" onclick="toggle('stopdouble')">off</button></td>
<td><textarea class="output" id="stopdoubleOutput"></textarea></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -1,91 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Click Event Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Click(
this, {
'click': this.trigger
}, this.handlerOptions
);
},
trigger: function(e) {
var lonlat = map.getLonLatFromPixel(e.xy);
alert("You clicked near " + lonlat.lat + " N, " +
+ lonlat.lon + " E");
}
});
var map;
function init(){
map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
var jpl_wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic",
"http://t1.hypercube.telascience.org/cgi-bin/landsat7",
{layers: "landsat7"});
jpl_wms.setVisibility(false);
map.addLayers([ol_wms, jpl_wms]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
// map.setCenter(new OpenLayers.LonLat(0, 0), 0);
map.zoomToMaxExtent();
var click = new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
}
</script>
</head>
<body onload="init()">
<h1 id="title">Click Event Example</h1>
<div id="tags">
click control, double, doubleclick, double-click, event, events,
propagation, light
</div>
<p id="shortdesc">
This example shows the use of the click handler and
getLonLatFromPixel functions to trigger events on mouse click.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>Using the Click handler allows you to (for example) catch clicks
without catching double clicks, something that standard browser
events don't do for you. (Try double clicking: you'll zoom in,
whereas using the browser click event, you would just get two
alerts.) This example click control shows you how to use it.</p>
</div>
</body>
</html>

View File

@@ -1,72 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Client Zoom Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css"/>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="../lib/Firebug/firebug.js"></script>
<script src="../lib/OpenLayers.js"></script>
<script src="clientzoom.js"></script>
<style>
.olControlAttribution {
bottom: 5px;
}
#map {
width: 600px;
height: 400px;
}
</style>
</head>
<body onload="init();">
<h1 id="title">Client Zoom</h1>
<div id="tags">
client zoom continuous zooming
</div>
<p id="shortdesc">
This example demonstrates the <strong>"client zoom"</strong>
functionality, where OpenLayers stretches the layer div when the
resolution is not supported by that layer's tile service.
</p>
<div id="map"></div>
<div id="docs">
<p>
The map of this example is configured with 22 resolutions, while
the OSM tile server supports the first 19 resolutions only. When
the zoom level is 19, 20 or 21 "client zoom" is applied to the OSM
layer, i.e. the OSM layer div is stretched as necessary. The map's
initial zoom is 18. So if you zoom in using the zoom bar's "+"
button you'll effectively trigger "client zoom".
</p>
<p>
For demonstration purpose the map of this example has
<code>fractionalZoom</code> set to true. So "client zoom" also
applies if you choose arbitrary zoom levels using the slider of the
zoom bar, or shift-drag boxes to zoom to arbitrary extents.
"client zoom" therefore allows continous zooming for tiled layers.
</p>
<p>
Enabling "client zoom" on a layer is done by passing
<code>serverResolutions</code> to the layer constructor.
<code>serverResolutions</code> is the list of resolutions supported
by the tile service. See the <a href="clientzoom.js"
target="_blank"> clientzoom.js source</a>.
</p>
</div>
</body>
</html>

View File

@@ -1,39 +0,0 @@
var map;
function init() {
map = new OpenLayers.Map({
div: "map",
projection: "EPSG:900913",
controls: [],
fractionalZoom: true
});
var osm = new OpenLayers.Layer.OSM(null, null, {
resolutions: [156543.03390625, 78271.516953125, 39135.7584765625,
19567.87923828125, 9783.939619140625, 4891.9698095703125,
2445.9849047851562, 1222.9924523925781, 611.4962261962891,
305.74811309814453, 152.87405654907226, 76.43702827453613,
38.218514137268066, 19.109257068634033, 9.554628534317017,
4.777314267158508, 2.388657133579254, 1.194328566789627,
0.5971642833948135, 0.25, 0.1, 0.05],
serverResolutions: [156543.03390625, 78271.516953125, 39135.7584765625,
19567.87923828125, 9783.939619140625,
4891.9698095703125, 2445.9849047851562,
1222.9924523925781, 611.4962261962891,
305.74811309814453, 152.87405654907226,
76.43702827453613, 38.218514137268066,
19.109257068634033, 9.554628534317017,
4.777314267158508, 2.388657133579254,
1.194328566789627, 0.5971642833948135],
transitionEffect: 'resize'
});
map.addLayers([osm]);
map.addControls([
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.PanZoomBar()
]);
map.setCenter(new OpenLayers.LonLat(659688.852138, 5710701.2962197), 18);
}

View File

@@ -1,86 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>OpenLayers Map Controls Example</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style>
/* round corners of layer switcher, and make it transparent */
.olControlLayerSwitcher .layersDiv {
border-radius: 10px 0 0 10px;
opacity: 0.75;
filter: alpha(opacity=75);
}
</style>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init(){
map = new OpenLayers.Map('map', {
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.LayerSwitcher({'ascending':false}),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.Permalink('permalink'),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults()
],
numZoomLevels: 6
});
var ol_wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0",
{layers: 'basic'}
);
var gwc = new OpenLayers.Layer.WMS(
"Global Imagery",
"http://maps.opengeo.org/geowebcache/service/wms",
{layers: "bluemarble"},
{tileOrigin: new OpenLayers.LonLat(-180, -90)}
);
var dm_wms = new OpenLayers.Layer.WMS(
"DM Solutions Demo",
"http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
{layers: "bathymetry,land_fn,park,drain_fn,drainage," +
"prov_bound,fedlimit,rail,road,popplace",
transparent: "true", format: "image/png"},
{visibility: false}
);
map.addLayers([ol_wms, gwc, dm_wms]);
if (!map.getCenter()) {
map.zoomToMaxExtent();
}
}
</script>
</head>
<body onload="init()">
<h1 id="title">Map Controls Example</h1>
<div id="tags">
control, basic
</div>
<p id="shortdesc">
Attach zooming, panning, layer switcher, overview map, and permalink map controls to an OpenLayers window.
</p>
<div id="map" class="smallmap"></div>
<a href="#" id="permalink">Permalink</a>
<div id="docs"></div>
</body>
</html>

View File

@@ -1,54 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<title>
OpenLayers CQL Example
</title>
<link rel="stylesheet" href="../theme/default/style.css" type="text/css">
<link rel="stylesheet" href="style.css" type="text/css">
<style>
#cql {
width: 400px;
}
#output {
padding-top: 1em;
width: 512px;
height: 60px;
border: none;
color: #ff3333;
}
</style>
<script src="../lib/OpenLayers.js"></script>
</head>
<body>
<h1 id="title">CQL Filter Example</h1>
<div id="tags">
CQL, filter
</div>
<p id="shortdesc">
Demonstrate use the CQL filter.
</p>
<div id="map" class="smallmap"></div>
<div id="docs">
<p>
Enter text for a CQL filter to update the features displayed.
<br>
<form name="cql_form" id="cql_form">
<label for="cql">CQL</label>
<input id="cql" type="text" value="STATE_ABBR >= 'B' AND STATE_ABBR <= 'O'">
<input type="submit" value="update">
<input type="reset" value="reset">
</form>
<textarea id="output"></textarea>
</p><p>
View the <a href="cql-format.js" target="_blank">cql-format.js source</a>
to see how this is done.
</p>
</div>
<script src="cql-format.js"></script>
<script src="http://demo.opengeo.org/geoserver/wfs?service=WFS&amp;version=1.0.0&amp;request=GetFeature&amp;typename=topp:states&amp;outputFormat=json&amp;format_options=callback:loadFeatures" type="text/javascript"></script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More