forked from openlayers/openlayers
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request openlayers#3305 from bartvde/image-load-events
- Loading branch information
Showing
8 changed files
with
294 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="X-UA-Compatible" content="chrome=1"> | ||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> | ||
<link rel="stylesheet" href="../css/ol.css" type="text/css"> | ||
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap.min.css" type="text/css"> | ||
<link rel="stylesheet" href="../resources/layout.css" type="text/css"> | ||
<link rel="stylesheet" href="../resources/bootstrap/css/bootstrap-responsive.min.css" type="text/css"> | ||
<title>Image load events example</title> | ||
<style> | ||
.map { | ||
background: #E0ECED; | ||
} | ||
.wrapper { | ||
position: relative; | ||
} | ||
#progress { | ||
position: absolute; | ||
bottom: 0; | ||
left: 0; | ||
height: 2px; | ||
background: rgba(0, 60, 136, 0.4); | ||
width: 0; | ||
transition: width 250ms; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
|
||
<div class="navbar navbar-inverse navbar-fixed-top"> | ||
<div class="navbar-inner"> | ||
<div class="container"> | ||
<a class="brand" href="./"><img src="../resources/logo.png"> OpenLayers 3 Examples</a> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div class="container-fluid"> | ||
|
||
<div class="row-fluid"> | ||
<div class="span12 wrapper"> | ||
<div id="map" class="map"></div> | ||
<div id="progress"></div> | ||
</div> | ||
</div> | ||
|
||
<div class="row-fluid"> | ||
|
||
<div class="span12"> | ||
<h4 id="title">Image load events example</h4> | ||
<p id="shortdesc">Example using image load events.</p> | ||
<div id="docs"> | ||
<p> | ||
Image sources fire events related to image loading. You can | ||
listen for <code>imageloadstart</code>, <code>imageloadend</code>, | ||
and <code>imageloaderror</code> type events to monitor image loading | ||
progress. This example registers listeners for these events and | ||
renders an image loading progress bar at the bottom of the map. | ||
</p> | ||
<p> | ||
See the <a href="image-load-events.js" target="_blank">image-load-events.js source</a> | ||
for more detail on how this is done. | ||
</p> | ||
</div> | ||
<div id="tags">image, events, loading</div> | ||
</div> | ||
|
||
</div> | ||
|
||
</div> | ||
|
||
<script src="../resources/jquery.min.js" type="text/javascript"></script> | ||
<script src="../resources/example-behaviour.js" type="text/javascript"></script> | ||
<script src="loader.js?id=image-load-events" type="text/javascript"></script> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
goog.require('ol.Map'); | ||
goog.require('ol.View'); | ||
goog.require('ol.layer.Image'); | ||
goog.require('ol.source.ImageWMS'); | ||
|
||
|
||
|
||
/** | ||
* Renders a progress bar. | ||
* @param {Element} el The target element. | ||
* @constructor | ||
*/ | ||
function Progress(el) { | ||
this.el = el; | ||
this.loading = 0; | ||
this.loaded = 0; | ||
} | ||
|
||
|
||
/** | ||
* Increment the count of loading tiles. | ||
*/ | ||
Progress.prototype.addLoading = function() { | ||
if (this.loading === 0) { | ||
this.show(); | ||
} | ||
++this.loading; | ||
this.update(); | ||
}; | ||
|
||
|
||
/** | ||
* Increment the count of loaded tiles. | ||
*/ | ||
Progress.prototype.addLoaded = function() { | ||
setTimeout(function() { | ||
++this.loaded; | ||
this.update(); | ||
}.bind(this), 100); | ||
}; | ||
|
||
|
||
/** | ||
* Update the progress bar. | ||
*/ | ||
Progress.prototype.update = function() { | ||
var width = (this.loaded / this.loading * 100).toFixed(1) + '%'; | ||
this.el.style.width = width; | ||
if (this.loading === this.loaded) { | ||
this.loading = 0; | ||
this.loaded = 0; | ||
setTimeout(this.hide.bind(this), 500); | ||
} | ||
}; | ||
|
||
|
||
/** | ||
* Show the progress bar. | ||
*/ | ||
Progress.prototype.show = function() { | ||
this.el.style.visibility = 'visible'; | ||
}; | ||
|
||
|
||
/** | ||
* Hide the progress bar. | ||
*/ | ||
Progress.prototype.hide = function() { | ||
if (this.loading === this.loaded) { | ||
this.el.style.visibility = 'hidden'; | ||
this.el.style.width = 0; | ||
} | ||
}; | ||
|
||
var progress = new Progress(document.getElementById('progress')); | ||
|
||
var source = new ol.source.ImageWMS({ | ||
url: 'http://demo.boundlessgeo.com/geoserver/wms', | ||
params: {'LAYERS': 'topp:states'}, | ||
serverType: 'geoserver' | ||
}); | ||
|
||
source.on('imageloadstart', function(event) { | ||
progress.addLoading(); | ||
}); | ||
|
||
source.on('imageloadend', function(event) { | ||
progress.addLoaded(); | ||
}); | ||
source.on('imageloaderror', function(event) { | ||
progress.addLoaded(); | ||
}); | ||
|
||
var map = new ol.Map({ | ||
logo: false, | ||
layers: [ | ||
new ol.layer.Image({source: source}) | ||
], | ||
renderer: exampleNS.getRendererFromQueryString(), | ||
target: 'map', | ||
view: new ol.View({ | ||
center: [-10997148, 4569099], | ||
zoom: 4 | ||
}) | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters