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;
 | |
| };
 |