%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : www.kowitt.ac.th / Your IP : 216.73.216.118 Web Server : Microsoft-IIS/7.5 System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.6.31 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/BK/wwwroot/phpMyAdmin/js/openlayers/src/openlayers/lib/OpenLayers/Control/ |
Upload File : |
/* 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" });