diff options
Diffstat (limited to 'misc/openlayers/examples/animated_panning.html')
-rw-r--r-- | misc/openlayers/examples/animated_panning.html | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/misc/openlayers/examples/animated_panning.html b/misc/openlayers/examples/animated_panning.html new file mode 100644 index 0000000..a07017c --- /dev/null +++ b/misc/openlayers/examples/animated_panning.html @@ -0,0 +1,98 @@ +<!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> |