Open Layers Refresh strategy
Demo of how to register to a layer event, create geom features on the fly and mainly the refresh strategy
HTML
<link rel="stylesheet" href="http://dev.openlayers.org/releases/OpenLayers-2.13.1/theme/default/style.css">
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<div id="map"></div>
CSS
#map {
height:400px;
}
JavaScript
// Minimal map with a WMS base layer
var map;
map = new OpenLayers.Map('map', {
numZoomLevels: 6
});
// An empty vector layer with a refresh strategy
var layer = new OpenLayers.Layer.Vector("POIs", {
strategies: [new OpenLayers.Strategy.Refresh({
interval: 1000
})]
});
// Register an event that refreshes the layer with random points
// Code taken from OpenLayers Cookbook
// http://kcy.me/q9q0
layer.events.register('refresh', layer,fonctionU);
var fonctionU = function(){
// Remove all previous features
layer.removeAllFeatures({
silent: true
});
// Create some random feature points
var pointFeatures = [];
for (var i = 0; i < 10; i++) {
var px = Math.random() * 360 - 180;
var py = Math.random() * 170 - 85;
// Create a lonlat instance and transform it to the map projection.
var lonlat = new OpenLayers.LonLat(px, py);
var pointGeometry = new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat);
var pointFeature = new OpenLayers.Feature.Vector(pointGeometry);
pointFeatures.push(pointFeature);
}
// Add features to the layer
layer.addFeatures(pointFeatures);
}
// Add the layers and zoom to max extent
map.addLayers([layer]);
map.setCenter(new OpenLayers.LonLat(0, 0), 2);