【问题标题】:Google Map API info windowGoogle Map API 信息窗口
【发布时间】:2014-03-04 00:19:53
【问题描述】:

我现在有点问题,我为我的地图创建了一个自定义样式,但我希望它显示一个信息窗口。我确实将它设置为实际的纬度和经度,但它似乎并没有以某种方式出现。

有人可以帮帮我吗?

    //Google maps Javascript, APi V3    
    var map;
    var sydney = new google.maps.LatLng(-33.866652,151.063670);

    var MY_MAPTYPE_ID = 'custom_style';

    function initialize() {

      var featureOpts = [
        {
          stylers: [
            { hue: '#fdc43d' },
          ]
        }           
      ];

      var mapOptions = {
        zoom: 13,
        center: sydney,
        mapTypeControlOptions: {
          mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]
        },
        mapTypeId: MY_MAPTYPE_ID
      };

      var contentString = '<div id="content">'+
          '<div id="siteNotice">'+
          '</div>'+
          '<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+
          '<div id="bodyContent">'+
          '<p><b>Uluru</b>, also referred to as <b>Ayers Rock</b>, is a large ' +
          'sandstone rock formation in the southern part of the '+
          'Northern Territory, central Australia. It lies 335&#160;km (208&#160;mi) '+
          'south west of the nearest large town, Alice Springs; 450&#160;km '+
          '(280&#160;mi) by road. Kata Tjuta and Uluru are the two major '+
          'features of the Uluru - Kata Tjuta National Park. Uluru is '+
          'sacred to the Pitjantjatjara and Yankunytjatjara, the '+
          'Aboriginal people of the area. It has many springs, waterholes, '+
          'rock caves and ancient paintings. Uluru is listed as a World '+
          'Heritage Site.</p>'+
          '<p>Attribution: Uluru, <a href="http://en.wikipedia.org/w/index.php?title=Uluru&oldid=297882194">'+
          'http://en.wikipedia.org/w/index.php?title=Uluru</a> '+
          '(last visited June 22, 2009).</p>'+
          '</div>'+
          '</div>';

      var infowindow = new google.maps.InfoWindow({
          content: contentString
      });

      var marker = new google.maps.Marker({
          position: sydney,
          map: map,
          title: 'Uluru (Ayers Rock)'
      });   

      var styledMapOptions = {
        name: 'Custom Style'
      };

      var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions); 

      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

      map.mapTypes.set(MY_MAPTYPE_ID, customMapType);

        google.maps.event.addListener(marker, 'click', function() {
         infowindow.open(map,marker);
        });
    }

    google.maps.event.addDomListener(window, 'load', initialize);     

});

谢谢!

【问题讨论】:

    标签: javascript api google-maps


    【解决方案1】:

    当您单击标记时,当前会打开信息窗口,但标记没有出现,因为在您创建标记时地图尚未初始化。

    固定代码:

    //Google maps Javascript, APi V3    
    var map;
    var sydney = new google.maps.LatLng(-33.866652,151.063670);
    
    var MY_MAPTYPE_ID = 'custom_style';
    
    function initialize() {
    
      var featureOpts = [
        {
          stylers: [
            { hue: '#fdc43d' },
          ]
        }           
      ];
    
      var mapOptions = {
        zoom: 13,
        center: sydney,
        mapTypeControlOptions: {
          mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID]
        },
        mapTypeId: MY_MAPTYPE_ID
      };
    
      var contentString = '<div id="content">'+
          '<div id="siteNotice">'+
          '</div>'+
          '<h1 id="firstHeading" class="firstHeading">Uluru</h1>'+
          '<div id="bodyContent">'+
          '<p><b>Uluru</b>, also referred to as <b>Ayers Rock</b>, is a large ' +
          'sandstone rock formation in the southern part of the '+
          'Northern Territory, central Australia. It lies 335&#160;km (208&#160;mi) '+
          'south west of the nearest large town, Alice Springs; 450&#160;km '+
          '(280&#160;mi) by road. Kata Tjuta and Uluru are the two major '+
          'features of the Uluru - Kata Tjuta National Park. Uluru is '+
          'sacred to the Pitjantjatjara and Yankunytjatjara, the '+
          'Aboriginal people of the area. It has many springs, waterholes, '+
          'rock caves and ancient paintings. Uluru is listed as a World '+
          'Heritage Site.</p>'+
          '<p>Attribution: Uluru, <a href="http://en.wikipedia.org/w/index.php?title=Uluru&oldid=297882194">'+
          'http://en.wikipedia.org/w/index.php?title=Uluru</a> '+
          '(last visited June 22, 2009).</p>'+
          '</div>'+
          '</div>';
    
      var infowindow = new google.maps.InfoWindow({
          content: contentString
      });
      //create the map before the marker
      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
    
      var marker = new google.maps.Marker({
          position: sydney,
          map: map,
          title: 'Uluru (Ayers Rock)'
      });   
    
      var styledMapOptions = {
        name: 'Custom Style'
      };
    
      var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions); 
    
    
    
      map.mapTypes.set(MY_MAPTYPE_ID, customMapType);
    
        google.maps.event.addListener(marker, 'click', function() {
         infowindow.open(map,marker);
        });
        //triggering the marker-click will open the InfoWindow
        google.maps.event.trigger(marker,'click')
    }
    
    google.maps.event.addDomListener(window, 'load', initialize); 
    

    【讨论】:

    • 很好的答案,谢谢.. 我知道这是因为初始化顺序。只是找不到合适的我猜。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 2018-04-06
    • 2014-10-16
    相关资源
    最近更新 更多