diff --git a/examples/mobile-full-screen.html b/examples/mobile-full-screen.html
new file mode 100644
index 0000000000..f478636a7a
--- /dev/null
+++ b/examples/mobile-full-screen.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ Mobile full screen example
+
+
+
+
+
+
+
+
Mobile full screen example
+
Example of a full screen map.
+
fullscreen, bing, geolocation, mobile
+
+
+
diff --git a/examples/mobile-full-screen.js b/examples/mobile-full-screen.js
new file mode 100644
index 0000000000..19d54c7a2d
--- /dev/null
+++ b/examples/mobile-full-screen.js
@@ -0,0 +1,35 @@
+goog.require('ol.Geolocation');
+goog.require('ol.Map');
+goog.require('ol.RendererHints');
+goog.require('ol.View2D');
+goog.require('ol.layer.TileLayer');
+goog.require('ol.source.BingMaps');
+
+
+var view = new ol.View2D({
+ center: [0, 0],
+ zoom: 2
+});
+
+var map = new ol.Map({
+ layers: [
+ new ol.layer.TileLayer({
+ source: new ol.source.BingMaps({
+ key: 'AlQLZ0-5yk301_ESrmNLma3LYxEKNSg7w-e_knuRfyYFtld-UFvXVs38NOulku3Q',
+ style: 'Road'
+ })
+ })
+ ],
+ renderers: ol.RendererHints.createFromQueryData(),
+ target: 'map',
+ view: view
+});
+
+var geolocation = new ol.Geolocation({
+ tracking: true
+});
+geolocation.bindTo('projection', view);
+geolocation.on('position_changed', function() {
+ view.setCenter(geolocation.getPosition());
+ view.setResolution(2.388657133911758);
+});
diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc
index efd75780ce..1c9b194871 100644
--- a/src/objectliterals.jsdoc
+++ b/src/objectliterals.jsdoc
@@ -1,3 +1,10 @@
+/**
+ * @typedef {Object} ol.GeolocationOptions
+ * @property {boolean|undefined} tracking Tracking.
+ * @property {GeolocationPositionOptions|undefined} trackingOptions Tracking options.
+ * @property {ol.ProjectionLike} projection Projection.
+ */
+
/**
* Object literal with config options for the map.
* @typedef {Object} ol.MapOptions
diff --git a/src/ol/geolocation.js b/src/ol/geolocation.js
index 81bdc95d1b..c16a88d866 100644
--- a/src/ol/geolocation.js
+++ b/src/ol/geolocation.js
@@ -33,11 +33,14 @@ ol.GeolocationProperty = {
/**
* @constructor
* @extends {ol.Object}
+ * @param {ol.GeolocationOptions=} opt_options Options.
*/
-ol.Geolocation = function() {
+ol.Geolocation = function(opt_options) {
goog.base(this);
+ var options = goog.isDef(opt_options) ? opt_options : {};
+
/**
* The unprojected (EPSG:4326) device position.
* @private
@@ -51,14 +54,23 @@ ol.Geolocation = function() {
*/
this.watchId_ = undefined;
- this.setTracking(false);
-
goog.events.listen(
this, ol.Object.getChangedEventType(ol.GeolocationProperty.PROJECTION),
this.handleProjectionChanged_, false, this);
goog.events.listen(
this, ol.Object.getChangedEventType(ol.GeolocationProperty.TRACKING),
this.handleTrackingChanged_, false, this);
+
+ if (goog.isDef(options.projection)) {
+ this.setProjection(ol.projection.get(options.projection));
+ }
+ if (goog.isDef(options.trackingOptions)) {
+ this.setTrackingOptions(options.trackingOptions);
+ }
+ if (goog.isDef(options.tracking)) {
+ this.setTracking(options.tracking);
+ }
+
};
goog.inherits(ol.Geolocation, ol.Object);