グーグルマップAPIでは、グーグルマップの吹き出し(InfoWindow)内にストリートビューを表示することができます。
マーカーにクリックイベントを登録する際、InfoWindowにストリートビューオブジェクトを登録するだけで簡単に実装できます。
以下、googlemapのコードです。
var map;
var infowindow;
var marker;
var canvas = 'map';
var lat = '35.658704';
var lng = '139.745408';
var infoWindow = {
id: 'pano',
width: '400px',
height: '300px'
};
var latlng = new google.maps.LatLng(lat, lng);
google.maps.event.addDomListener(window, 'load', function(){
var mapdiv = document.getElementById(canvas);
map = new google.maps.Map(mapdiv);
map.setOptions({
zoom: 14,
center: latlng,
mapTypeControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// マーカーをセットする
marker = new google.maps.Marker({
position: latlng,
map: map
});
// マーカーにclickイベントを登録
google.maps.event.addListener(marker, 'click', function() {
// InfoWindowの設定
var infowindow = new google.maps.InfoWindow({
content: '<div id="' + infoWindow.id + '" style="width:'+ infoWindow.width + ';height:'+ infoWindow.height + '"></div>'
});
// InfoWindowにストリートビューを登録
google.maps.event.addListener(infowindow, 'domready', function() {
// ストリートビューのオプションを設定
var panoramaOptions = {
position: marker.getPosition(),
linksControl: false,
addressControl: false,
enableCloseButton: false,
panControl: false,
scrollwheel: false
};
// ストリートビューオブジェクトを生成
new google.maps.StreetViewPanorama(document.getElementById(infoWindow.id), panoramaOptions);
});
infowindow.open(marker.getMap(), marker);
});
});