diff --git a/examples/geolocation.js b/examples/geolocation.js index b693c7efc5..963b536f83 100644 --- a/examples/geolocation.js +++ b/examples/geolocation.js @@ -31,7 +31,8 @@ geolocation.bindTo('projection', view); var track = new ol.dom.Input(document.getElementById('track')); track.bindTo('checked', geolocation, 'tracking'); -geolocation.on('propertychange', function() { +// update the HTML page when the position changes. +geolocation.on('change', function() { $('#accuracy').text(geolocation.getAccuracy() + ' [m]'); $('#altitude').text(geolocation.getAltitude() + ' [m]'); $('#altitudeAccuracy').text(geolocation.getAltitudeAccuracy() + ' [m]'); @@ -39,13 +40,13 @@ geolocation.on('propertychange', function() { $('#speed').text(geolocation.getSpeed() + ' [m/s]'); }); +// handle geolocation error. geolocation.on('error', function(error) { var info = document.getElementById('info'); info.innerHTML = error.message; info.style.display = ''; }); - var accuracyFeature = new ol.Feature(); accuracyFeature.bindTo('geometry', geolocation, 'accuracyGeometry'); diff --git a/src/ol/geolocation.js b/src/ol/geolocation.js index 0a1e621024..7636afa812 100644 --- a/src/ol/geolocation.js +++ b/src/ol/geolocation.js @@ -44,7 +44,7 @@ ol.GeolocationProperty = { * // take the projection to use from the map's view * geolocation.bindTo('projection', map.getView()); * // listen to changes in position - * geolocation.on('change:position', function(evt) { + * geolocation.on('change', function(evt) { * window.console.log(geolocation.getPosition()); * }); * @@ -186,10 +186,10 @@ ol.Geolocation.prototype.positionChange_ = function(position) { this.set(ol.GeolocationProperty.POSITION, projectedPosition); this.set(ol.GeolocationProperty.SPEED, goog.isNull(coords.speed) ? undefined : coords.speed); - var geometry = ol.sphere.WGS84.circle(this.position_, coords.accuracy); geometry.transform(this.transform_); this.set(ol.GeolocationProperty.ACCURACY_GEOMETRY, geometry); + this.dispatchChangeEvent(); };