45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
GMaps.prototype.createPanorama = function(streetview_options) {
 | 
						|
  if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) {
 | 
						|
    streetview_options.lat = this.getCenter().lat();
 | 
						|
    streetview_options.lng = this.getCenter().lng();
 | 
						|
  }
 | 
						|
 | 
						|
  this.panorama = GMaps.createPanorama(streetview_options);
 | 
						|
 | 
						|
  this.map.setStreetView(this.panorama);
 | 
						|
 | 
						|
  return this.panorama;
 | 
						|
};
 | 
						|
 | 
						|
GMaps.createPanorama = function(options) {
 | 
						|
  var el = getElementById(options.el, options.context);
 | 
						|
 | 
						|
  options.position = new google.maps.LatLng(options.lat, options.lng);
 | 
						|
 | 
						|
  delete options.el;
 | 
						|
  delete options.context;
 | 
						|
  delete options.lat;
 | 
						|
  delete options.lng;
 | 
						|
 | 
						|
  var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'],
 | 
						|
      streetview_options = extend_object({visible : true}, options);
 | 
						|
 | 
						|
  for (var i = 0; i < streetview_events.length; i++) {
 | 
						|
    delete streetview_options[streetview_events[i]];
 | 
						|
  }
 | 
						|
 | 
						|
  var panorama = new google.maps.StreetViewPanorama(el, streetview_options);
 | 
						|
 | 
						|
  for (var i = 0; i < streetview_events.length; i++) {
 | 
						|
    (function(object, name) {
 | 
						|
      if (options[name]) {
 | 
						|
        google.maps.event.addListener(object, name, function(){
 | 
						|
          options[name].apply(this);
 | 
						|
        });
 | 
						|
      }
 | 
						|
    })(panorama, streetview_events[i]);
 | 
						|
  }
 | 
						|
 | 
						|
  return panorama;
 | 
						|
};
 |