2014-07-18 29 views
-1

我想要一個infowindow在加載this map時自動打開。我試圖應用非常好的答案here,唯一的區別是我可以看到我觸發了一個標記而不是多邊形上的點擊。我一直在盯着代碼一段時間,但只是無法觸發該點擊。我錯過了什麼?無法讓google.maps.event.trigger(geoXml.docs [0] .placemarks [0] .marker,'click')正常工作

感謝, 德魯

這種削減的版本是使用KML一個標文件。對於event.trigger相關的代碼是在下跌33行

<!DOCTYPE html> 
<html> 
<head> 
    <title>Simple Map</title> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <style> 
     html, body, #map-canvas { 
      height: 100%; 
      margin: 0px; 
      padding: 0px 
     } 
    </style> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script src="http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js"></script> 
    <script src="http://geoxml3.googlecode.com/svn/trunk/ProjectedOverlay.js"></script> 
    <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDDFrP7MSD1ieFEvaF95BRlwHa0S72Fy1s&sensor=FALSE"></script> 
    <script> 

     function initialize() { 
      var mapOptions = { 
       zoom: 6, 
       center: new google.maps.LatLng(47.606209, -122.332069) 
      }; 
      var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

      var blues = new geoXML3.parser({map: map, zoom: false}); 
      blues.parse('allbluesdance_seattle.kml'); 

      google.maps.event.addListenerOnce(map, 'idle', function(){ 
       alert("Clicking now."); 
       google.maps.event.trigger(geoXml.docs[0].placemarks[0].marker,'click') 
      }); 

     } 

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

    </script> 
</head> 
<body> 
    <div id="map-canvas"></div> 
</body> 
</html> 
+0

你能提供的KML(或至少一個再現片斷的問題)? – geocodezip

+0

我收到一個javascript錯誤:'未捕獲的ReferenceError:未定義geoXml',因爲geoXml未定義。 [小提琴](http://jsfiddle.net/x5XPU/1/) – geocodezip

+0

是的,謝謝大家,這是一個JavaScript錯誤。我不清楚如何將此標記爲已解決。 –

回答

0

你在你的代碼JavaScript錯誤:Uncaught ReferenceError: geoXml is not defined(因爲geoXml是不確定的)。在你的代碼中應該是blues

function initialize() { 
     var mapOptions = { 
      zoom: 6, 
      center: new google.maps.LatLng(47.606209, -122.332069) 
     }; 
     var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

     var blues = new geoXML3.parser({ 
      map: map, 
      zoom: false 
     }); 
     blues.parse('allbluesdance_seattle.kml'); 

     google.maps.event.addListenerOnce(map, 'idle', function() { 
      alert("Clicking now."); 
      google.maps.event.trigger(blues.docs[0].placemarks[0].marker, 'click'); 
     }); 

    } 

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

working fiddle