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