Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.

Commit

Permalink
Merge pull request #398 from reinos/master
Browse files Browse the repository at this point in the history
Added getPanoramaByLocation and a check around option
  • Loading branch information
hpneo committed May 1, 2015
2 parents ad937e4 + b5ab0c1 commit a1593c8
Showing 1 changed file with 28 additions and 12 deletions.
40 changes: 28 additions & 12 deletions lib/gmaps.streetview.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,17 @@ GMaps.prototype.createPanorama = function(streetview_options) {
GMaps.createPanorama = function(options) {
var el = getElementById(options.el, options.context);

var panoramaService = new google.maps.StreetViewService();
var checkaround = options.checkaround || 50;
var panorama = null;

options.position = new google.maps.LatLng(options.lat, options.lng);

delete options.el;
delete options.context;
delete options.lat;
delete options.lng;
delete options.checkaround;

var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'],
streetview_options = extend_object({visible : true}, options);
Expand All @@ -28,17 +33,28 @@ GMaps.createPanorama = function(options) {
delete streetview_options[streetview_events[i]];
}

var panorama = new google.maps.StreetViewPanorama(el, streetview_options);
//get only a streetview if this one is available
panoramaService.getPanoramaByLocation(options.position, checkaround ,function(data, status){
if (status == google.maps.StreetViewStatus.OK) {

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]);
}
streetview_options.position = data.location.latLng;

return panorama;
};
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]);
}
panorama.setVisible(true);
return panorama;
// no result
} else {
return false;
}
});
};

0 comments on commit a1593c8

Please sign in to comment.