2011-11-23 13 views
34

Poniższy przykład pokazuje prosty znacznik (standardowa ikona) na mapach Google dla danej lokalizacji, a po kliknięciu ikony otwiera okno informacyjne. Czy mogę domyślnie otworzyć okno informacyjne, aby nie trzeba było klikać ikony, aby ją otworzyć?Google domyślnie otwiera domyślne okno informacyjne?

var myLatlng = new google.maps.LatLng(-25.363882,131.044922); 
    var myOptions = { 
    zoom: 4, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var contentString = '<div id="content">'+ 
     '<div id="siteNotice">'+ 
     '</div>'+ 
     '<h2 id="firstHeading" class="firstHeading">Uluru</h2>'+ 
     '</div>'; 

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

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

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

Odpowiedz

69

Jeśli chcesz pokazać okno informacyjne otwierany domyślnie bez kliknięcia, wystarczy dodać nowy kod jak poniżej:

Kod:

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

Mamy więc nowy kod jak to:

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

infowindow.open(map,marker); 

Jak widać, po prostu dodać trochę kodu zgodne z infowindow.open(map,marker);

1

Powyższy kod działa idealnie. Jednak moja mapa nie zmieniła się tak, że infowinza była w pełni pokazana. Zamiast tego pinezka pozostała w środku.

Jak zatem dostosować mapę, aby okno informacyjne było w pełni widoczne? Przeczytaj to: Google Maps : auto center map on marker click

Jeśli chcesz pinezkę aby pozostać tam, gdzie to jest i nie przesuwać mapę, przeczytać: Google Maps: How to prevent InfoWindow from shifting the map

nadzieję, że pomaga ludziom podjąć następny krok

+0

To jest po prostu genialne! Wielkie dzięki za opublikowanie drugiego linku! – berliner

15

można uruchomić "Otwórz" bezpośrednio przy ładowaniu strony powinien otworzyć okno automatycznie, bez kliknięcia.

infowindow.open(map, marker); 

Jednak w niektórych przypadkach może to nie zostać uzupełnione automatycznie, pozostawiając górną część nakładki poza krawędzią mapy.

sposób, który pracował dla mnie jest owinąć go w słuchacza do „tilesloaded” wydarzenie na mapie

google.maps.event.addListenerOnce(map, 'tilesloaded', function() { 
    infowindow.open(map, marker); 
}); 
+0

TO jest prawidłowe rozwiązanie, dziękuję! Szukałem wiele godzin, ale każde inne rozwiązanie koncentrowało Markera, a nie informacje. – kissgyorgy

0

Poniżej kod działa dobrze dla mnie:

Zmień szerokość geograficzna, Treść i mapid (z niestandardowym identyfikatorem div):

<script type="text/javascript"> 

function initialize() { 
    var myLatlng = new google.maps.LatLng(48.206615,13.487928); 
    var mapOptions = { 
     zoom: 16, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var contentString = '<p><strong>Bahnhofstraße 32</strong></p><p>Bahnhofstraße 32, 4910 Ried im</p><p>Innkreis, Austria</p>'; 

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


    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'Bahnhofstraße 32' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map,marker); 
    }); 
    // show map, open infoBox 
     google.maps.event.addListenerOnce(map, 'tilesloaded', function() { 
      infowindow.open(map, marker); 
     }); 

} 

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

    </script> 
Powiązane problemy