【问题标题】:Can't close infowindow and display street view无法关闭信息窗口并显示街景
【发布时间】:2012-11-27 08:31:27
【问题描述】:

我正在尝试关闭一个显示街景的信息窗口。当我点击地图时,信息窗口没有关闭。此外,当我单击其他标记时,会打开一个信息窗口,但街景会在前一个信息窗口中打开。所以我需要关闭信息窗口并显示街景。这是代码:感谢您的帮助。

最好的问候。

function paradascamiones() {
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
var Boton = document.getElementById('Boton').value;
var textboxImei = document.getElementById('imei').value;
var textboxFecha = document.getElementById('fecha').value;
var textboxFechaFin = document.getElementById('fechaFin').value;
var textboxDesdeHora = document.getElementById('desdeHora').value;
var textboxHastaHora = document.getElementById('hastaHora').
downloadUrl("paradas.asp?imei="+textboxImei+"&fecha="+textboxFecha+" "+textboxDesdeHora+"&fechaFin="+textboxFechaFin+" "+textboxHastaHora, 
function(data) {
    var xml = xmlParse(data);
    var markersParadas = xml.documentElement.getElementsByTagName("marker");    
    var position = [];


    for (var i = 0; i < markersParadas.length; i++) {

    var lat = parseFloat(markersParadas[i].getAttribute("lat"));
    var lng = parseFloat(markersParadas[i].getAttribute("lng"));
    var myLatlngParadas = new google.maps.LatLng(lat, lng);

    var fechaInicio = markersParadas[i].getAttribute("fechaInicio");
    var fechaFinal = markersParadas[i].getAttribute("fechaFinal");
    var diferencia = markersParadas[i].getAttribute("diferencia");


    var datearray = diferencia.split("/"); 

    var newDate = datearray[1] + '/' + datearray[0] + '/' + datearray[2];
    var aFecha = new Date(newDate);
        var hours = aFecha.getHours();
        var minutes = aFecha.getMinutes();
        var seconds = aFecha.getSeconds();

    var markerParadas = createMarkerParadas(myLatlngParadas, hours, minutes, seconds, fechaInicio);
    myMarkersParadas.push(markerParadas);


  }//finish loop



}); //end download url

}


 function createMarkerParadas(myLatlngParadas, hours, minutes, seconds, fechaInicio) {


    var contentString = '<div id="content" style="width:350px;height:300px;"> </div>';
    var infoWindow = new google.maps.InfoWindow({
      content: contentString
   });
  var image2 = '/artworks/icons/stop.png';
  var markerParadas = new google.maps.Marker({
  position: myLatlngParadas,
  map: map,
  title: " my info ",
  icon: image2

});

    google.maps.event.addListener(markerParadas, "click", function () {

            infoWindow.open(map, markerParadas);

            var pano = null;
            google.maps.event.addListener(infoWindow, 'domready', function () {

                if (pano != null) {
                    pano.unbind("position");
                    pano.setVisible(false);
                }
                pano = new  google.maps.StreetViewPanorama(document.getElementById("content"), {
                    navigationControl: true,

                    enableCloseButton: false,
                    addressControl: true,
                    linksControl: false
                });
                pano.bindTo("position", markerParadas);
                pano.setVisible(true);
            });

            google.maps.event.addListener(infoWindow, 'closeclick', function () {
                pano.unbind("position");
                pano.setVisible(false);
                pano = null;
            });

    }); 



   return markerParadas;


 }

【问题讨论】:

  • 你能提供更多的上下文,调用这个例程的代码或者最好是一个小提琴吗?听起来像是将内容与标记相关联的经典问题;通常由函数闭包修复。这是working example 在 infowindows 中的街景。
  • 你好 geocodezip。我添加了调用创建标记函数的函数。

标签: google-maps-api-3 infowindow google-street-view


【解决方案1】:

在您的代码中,至少您应该更改将 infowindow 变量定义为全局范围的做法。

您的代码

function createMarkerParadas() {
    var infoWindow = new google.maps.InfoWindow({
      content : contentString
    });
    ...
}

改成这样;

<script type="text/javascript">
    var map, infowindow;
    ...

    function createMarkerParadas() {
        infoWindow = new google.maps.InfoWindow({
          content : contentString
        });
        ....
    }
</script>

【讨论】:

  • 正在将 infowindow 变量转换为全局变量,谢谢!
猜你喜欢
  • 2012-11-15
  • 2015-09-10
  • 1970-01-01
  • 2013-02-20
  • 2013-09-15
  • 2018-07-28
  • 2018-08-02
  • 1970-01-01
  • 2019-01-10
相关资源
最近更新 更多