提交 | 用户 | 时间
|
58d006
|
1 |
GMaps.prototype.createPanorama = function(streetview_options) { |
A |
2 |
if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) { |
|
3 |
streetview_options.lat = this.getCenter().lat(); |
|
4 |
streetview_options.lng = this.getCenter().lng(); |
|
5 |
} |
|
6 |
|
|
7 |
this.panorama = GMaps.createPanorama(streetview_options); |
|
8 |
|
|
9 |
this.map.setStreetView(this.panorama); |
|
10 |
|
|
11 |
return this.panorama; |
|
12 |
}; |
|
13 |
|
|
14 |
GMaps.createPanorama = function(options) { |
|
15 |
var el = getElementById(options.el, options.context); |
|
16 |
|
|
17 |
options.position = new google.maps.LatLng(options.lat, options.lng); |
|
18 |
|
|
19 |
delete options.el; |
|
20 |
delete options.context; |
|
21 |
delete options.lat; |
|
22 |
delete options.lng; |
|
23 |
|
|
24 |
var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'], |
|
25 |
streetview_options = extend_object({visible : true}, options); |
|
26 |
|
|
27 |
for (var i = 0; i < streetview_events.length; i++) { |
|
28 |
delete streetview_options[streetview_events[i]]; |
|
29 |
} |
|
30 |
|
|
31 |
var panorama = new google.maps.StreetViewPanorama(el, streetview_options); |
|
32 |
|
|
33 |
for (var i = 0; i < streetview_events.length; i++) { |
|
34 |
(function(object, name) { |
|
35 |
if (options[name]) { |
|
36 |
google.maps.event.addListener(object, name, function(){ |
|
37 |
options[name].apply(this); |
|
38 |
}); |
|
39 |
} |
|
40 |
})(panorama, streetview_events[i]); |
|
41 |
} |
|
42 |
|
|
43 |
return panorama; |
|
44 |
}; |