43 lines
		
	
	
		
			1000 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1000 B
		
	
	
	
		
			JavaScript
		
	
	
GMaps.geolocate = function(options) {
 | 
						|
  var complete_callback = options.always || options.complete;
 | 
						|
 | 
						|
  if (navigator.geolocation) {
 | 
						|
    navigator.geolocation.getCurrentPosition(function(position) {
 | 
						|
      options.success(position);
 | 
						|
 | 
						|
      if (complete_callback) {
 | 
						|
        complete_callback();
 | 
						|
      }
 | 
						|
    }, function(error) {
 | 
						|
      options.error(error);
 | 
						|
 | 
						|
      if (complete_callback) {
 | 
						|
        complete_callback();
 | 
						|
      }
 | 
						|
    }, options.options);
 | 
						|
  }
 | 
						|
  else {
 | 
						|
    options.not_supported();
 | 
						|
 | 
						|
    if (complete_callback) {
 | 
						|
      complete_callback();
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
GMaps.geocode = function(options) {
 | 
						|
  this.geocoder = new google.maps.Geocoder();
 | 
						|
  var callback = options.callback;
 | 
						|
  if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) {
 | 
						|
    options.latLng = new google.maps.LatLng(options.lat, options.lng);
 | 
						|
  }
 | 
						|
 | 
						|
  delete options.lat;
 | 
						|
  delete options.lng;
 | 
						|
  delete options.callback;
 | 
						|
  
 | 
						|
  this.geocoder.geocode(options, function(results, status) {
 | 
						|
    callback(results, status);
 | 
						|
  });
 | 
						|
};
 |