Не удается заставить 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>

1 ответ

Решение

У вас есть ошибка 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);

рабочая скрипка

Другие вопросы по тегам