var gmap = '';
var gmapready ='';
var ImgViewready ='';
function myMap(latitude,longitude,zoom) {
var mapProp= {
center:new google.maps.LatLng(latitude,longitude),
"zoom":zoom,
};
gmap=new google.maps.Map(document.getElementById(mapdivid+"googleMap"),mapProp);
gmap.get('streetView')
.setOptions({
imageDateControl: true,
})
gmapready='true';
var stvProp= {
};
var thePanorama = gmap.getStreetView();
//thePanorama.setOptions(stvProp);
//gps-device-arrow.png
var panoicon = L.icon({
iconUrl: '/objects/gps-device-arrow.png',
iconSize: [38, 38], // size of the icon
iconAnchor: [19, 19], // point of the icon which will correspond to marker's location
// popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor
});
var mOpt = [];
mOpt['icon']=panoicon;
var panomarker = L.marker([latitude, longitude],mOpt);
var panostatus = 'closed';
//panomarker.addTo(map);
//google.maps.StreetViewPanoramaOptions
google.maps.event.addListener(thePanorama, 'visible_changed', function() {
if (thePanorama.getVisible()) {
//alert('open?');
if (panostatus == 'closed')
{
// panomarker.setLatLng(thePanorama.getPosition().lat(),thePanorama.getPosition().lng());
//console.log(thePanorama.getPosition().lat()+" "+thePanorama.getPosition().lng());
/* //I think we should wait... somtimes this fires error
var latlng = L.latLng(thePanorama.getPosition().lat(),thePanorama.getPosition().lng());
panomarker.setLatLng(latlng);
panomarker.addTo(map);
*/
// alert('open');
// Display your street view visible UI
panostatus = 'open';
}
} else {
//alert('closed');
// Display your original UI
//alert('closed');
panostatus = 'closed';
map.removeLayer(panomarker);
}
});
thePanorama.setOptions({
imageDateControl: true
});
thePanorama.addListener('position_changed', function() {
//console.log(thePanorama.getPosition());
var latlng = L.latLng(thePanorama.getPosition().lat(),thePanorama.getPosition().lng());
panomarker.setLatLng(latlng);
panomarker.addTo(map);
});
thePanorama.addListener('pov_changed', function() {
//console.log(thePanorama.getPov());
//console.log("HEADNIG: "+thePanorama.getPov().heading.toFixed());
console.log("data "+thePanorama.StreetViewPanoramaData);
//console.log(thePanorama.getPov());
panomarker.setRotationAngle(thePanorama.getPov().heading.toFixed());
});
/*
google.maps.event.addListenerOnce(map, 'idle', function(){
alert('here');
});
*/
}
function gmapsetbounds(latitude,longitude,zoom)
{
gmap.setCenter({lat: latitude, lng: longitude});
gmap.setZoom(zoom);
}
function togglegooglemaps(mapid)
{
if (gmapready == '')
{
// alert(mapid);
$("#"+mapid).height($("#"+mapid).height()/2);
$("#"+mapdivid+"googleMap").height($("#"+mapid).height());
$("#"+mapdivid+"googleMap").slideDown("slow", function() {
var latitude = map.getCenter().lat;
var longitude = map.getCenter().lng;
var zoom = map.getZoom();
myMap(latitude,longitude,zoom);
google.maps.event.trigger(gmap, "resize");
map.invalidateSize();
});
}
else
{
//alert('there');
$("#"+mapdivid+"googleMap").slideUp("slow", function() {
// Animation complete.
var newheight = $("#"+mapid).height($("#"+mapid).height()*2);
$("#"+mapid).animate({"height":newheight},5000);
google.maps.event.trigger(gmap, "resize");
map.invalidateSize();
gmapready='';
});
//$("#googleMap").hide();
}
}
function toggleImgView(mapid,imgurl)
{
if (ImgViewready == '')
{
ImgViewready='true';
// alert(mapid);
$("#"+mapid).height($("#"+mapid).height()/2);
$("#"+mapdivid+"ImgView").height($("#"+mapid).height());
$("#"+mapdivid+"ImgView").slideDown("slow", function() {
$("#"+mapdivid+"ImgView").html("");
var divid = mapdivid+"ImgView";
//loadimgviewer(divid);
pannellum.viewer(divid, {
"type": "equirectangular",
"panorama": imgurl,
"autoLoad": true
});
});
}
else
{
//alert('there');
$("#"+mapdivid+"ImgView").slideUp("slow", function() {
// Animation complete.
var newheight = $("#"+mapid).height($("#"+mapid).height()*2);
$("#"+mapid).animate({"height":newheight},5000);
google.maps.event.trigger(gmap, "resize");
map.invalidateSize();
ImgViewready='';
$("#"+mapdivid+"ImgView").html("SLEEPING");
});
//$("#googleMap").hide();
}
}