diff options
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Control/Geolocate.js')
-rw-r--r-- | misc/openlayers/lib/OpenLayers/Control/Geolocate.js | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Control/Geolocate.js b/misc/openlayers/lib/OpenLayers/Control/Geolocate.js deleted file mode 100644 index 4b5b439..0000000 --- a/misc/openlayers/lib/OpenLayers/Control/Geolocate.js +++ /dev/null @@ -1,192 +0,0 @@ -/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for - * full list of contributors). Published under the 2-clause BSD license. - * See license.txt in the OpenLayers distribution or repository for the - * full text of the license. */ - -/** - * @requires OpenLayers/Control.js - * @requires OpenLayers/Geometry/Point.js - * @requires OpenLayers/Projection.js - */ - -/** - * Class: OpenLayers.Control.Geolocate - * The Geolocate control wraps w3c geolocation API into control that can be - * bound to a map, and generate events on location update - * - * To use this control requires to load the proj4js library if the projection - * of the map is not EPSG:4326 or EPSG:900913. - * - * Inherits from: - * - <OpenLayers.Control> - */ -OpenLayers.Control.Geolocate = OpenLayers.Class(OpenLayers.Control, { - - /** - * APIProperty: events - * {<OpenLayers.Events>} Events instance for listeners and triggering - * control specific events. - * - * Register a listener for a particular event with the following syntax: - * (code) - * control.events.register(type, obj, listener); - * (end) - * - * Supported event types (in addition to those from <OpenLayers.Control.events>): - * locationupdated - Triggered when browser return a new position. Listeners will - * receive an object with a 'position' property which is the browser.geolocation.position - * native object, as well as a 'point' property which is the location transformed in the - * current map projection. - * locationfailed - Triggered when geolocation has failed - * locationuncapable - Triggered when control is activated on a browser - * which doesn't support geolocation - */ - - /** - * Property: geolocation - * {Object} The geolocation engine, as a property to be possibly mocked. - * This is set lazily to avoid a memory leak in IE9. - */ - geolocation: null, - - /** - * Property: available - * {Boolean} The navigator.geolocation object is available. - */ - available: ('geolocation' in navigator), - - /** - * APIProperty: bind - * {Boolean} If true, map center will be set on location update. - */ - bind: true, - - /** - * APIProperty: watch - * {Boolean} If true, position will be update regularly. - */ - watch: false, - - /** - * APIProperty: geolocationOptions - * {Object} Options to pass to the navigator's geolocation API. See - * <http://dev.w3.org/geo/api/spec-source.html>. No specific - * option is passed to the geolocation API by default. - */ - geolocationOptions: null, - - /** - * Constructor: OpenLayers.Control.Geolocate - * Create a new control to deal with browser geolocation API - * - */ - - /** - * Method: destroy - */ - destroy: function() { - this.deactivate(); - OpenLayers.Control.prototype.destroy.apply(this, arguments); - }, - - /** - * Method: activate - * Activates the control. - * - * Returns: - * {Boolean} The control was effectively activated. - */ - activate: function () { - if (this.available && !this.geolocation) { - // set lazily to avoid IE9 memory leak - this.geolocation = navigator.geolocation; - } - if (!this.geolocation) { - this.events.triggerEvent("locationuncapable"); - return false; - } - if (OpenLayers.Control.prototype.activate.apply(this, arguments)) { - if (this.watch) { - this.watchId = this.geolocation.watchPosition( - OpenLayers.Function.bind(this.geolocate, this), - OpenLayers.Function.bind(this.failure, this), - this.geolocationOptions - ); - } else { - this.getCurrentLocation(); - } - return true; - } - return false; - }, - - /** - * Method: deactivate - * Deactivates the control. - * - * Returns: - * {Boolean} The control was effectively deactivated. - */ - deactivate: function () { - if (this.active && this.watchId !== null) { - this.geolocation.clearWatch(this.watchId); - } - return OpenLayers.Control.prototype.deactivate.apply( - this, arguments - ); - }, - - /** - * Method: geolocate - * Activates the control. - * - */ - geolocate: function (position) { - var center = new OpenLayers.LonLat( - position.coords.longitude, - position.coords.latitude - ).transform( - new OpenLayers.Projection("EPSG:4326"), - this.map.getProjectionObject() - ); - if (this.bind) { - this.map.setCenter(center); - } - this.events.triggerEvent("locationupdated", { - position: position, - point: new OpenLayers.Geometry.Point( - center.lon, center.lat - ) - }); - }, - - /** - * APIMethod: getCurrentLocation - * - * Returns: - * {Boolean} Returns true if a event will be fired (successfull - * registration) - */ - getCurrentLocation: function() { - if (!this.active || this.watch) { - return false; - } - this.geolocation.getCurrentPosition( - OpenLayers.Function.bind(this.geolocate, this), - OpenLayers.Function.bind(this.failure, this), - this.geolocationOptions - ); - return true; - }, - - /** - * Method: failure - * method called on browser's geolocation failure - * - */ - failure: function (error) { - this.events.triggerEvent("locationfailed", {error: error}); - }, - - CLASS_NAME: "OpenLayers.Control.Geolocate" -}); |