2012-04-26 15 views
21

Pracuję nad projektem, w którym używam Map Google api-v3, Na mapie będzie kilka znaczników miejsc zawierających informacje, które przechowuję w InfoWindow.Google maps-api v3 InfoWindow automatycznie otwiera się na stronie ładowania

Zastanawiam się, czy istnieje możliwość ustawienia okna InfoWindow tak, aby automatycznie otwierał się podczas ładowania strony (tzn. Automatycznie otwierał się bez interakcji użytkownika).

Wyszukiwanie w Internecie wszystko, co mogę znaleźć, to to, że musi być związany z detektorem zdarzeń, ale wszystkie zdarzenia, które wydaje się obiekt InfoWindow są zdarzenia myszy.

Czy ktoś wie o obejściu tego typu?

Odpowiedz

26

Nie jestem pewien czy w pełni zrozumieć swoje pytanie, ale to działa na mnie z twardego kodowane długość i szerokość geograficzną:

var infoWindow = null; 
function initialize() 
{ 
    infoWindow = new google.maps.InfoWindow(); 
    var windowLatLng = new google.maps.LatLng(43.25,-68.03); 
    infoWindow.setOptions({ 
     content: "<div>This is the html content.</div>", 
     position: windowLatLng, 
    }); 
    infoWindow.open(map); 
} // end initialize 

google.setOnLoadCallback(initialize); 
+0

Dziękuję bardzo, to było dokładnie to, czego szukałem !! – scrineym

+0

Okno informacyjne spada dokładnie na mój znacznik. Czy istnieje sposób na obliczenie różnicy długości geograficznej w celu umieszczenia okna informacyjnego tuż nad znacznikiem? – user3411192

11

Jestem bardzo późno na to pytanie, ale chciałem podzielić something.I również poszukiwał jego rozwiązania a nawet nie działało z powyższego rozwiązania. Potem próbowałem siebie i dostałem własne rozwiązanie (nie jestem ekspertem i mój pomysł może nie być dobry, ale działa dobrze dla mnie). na ogół nie podoba

var infowindow = new google.maps.InfoWindow(); 
google.maps.event.addListener(marker, 'click', (function(marker) { 
return function() { 
    infowindow.setContent('some content here'); 
     infowindow.open(map, marker); 
    } 
})(marker)); 

zastąpić powyższe linie z:

var infowindow = new google.maps.InfoWindow(); 
infowindow.setContent('some content here'); 
infowindow.open(map, marker); 

Dont czekać na zdarzenia click znacznika wystarczy ustawić zawartość i otwórz go (należy określić mapę i marker i infowindow wskazuje na twój znacznik).

+0

@Roka .. Dziękuję .. To działa ode mnie :) – AnNaMaLaI

+0

Najprostszym rozwiązaniem, zadzwoń poza markerem kliknij .. Dziękuję Roka –

3

Po prostu weź infowindow.open (mapa, znacznik); z google.maps.event.addListener. Powinno to wyglądać tak:

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

    }); 

    infowindow.open(map,marker); 

    google.maps.event.addListener(marker, 'click', function() { 
    }); 
1

Tu jest mój kod, który ładuje okno informacyjne z mapą, a także z myszy nad.

map.setCenter(results[0].geometry.location); 
var marker = new google.maps.Marker({ 
    map: map, 
    icon: "/images/map-marker.png", 
    draggable: true, 
    position: results[0].geometry.location 

}); 
var infowindow = new google.maps.InfoWindow({ 
    content: "Use pin to point your exact locality" 
}); 
google.maps.event.addListener(marker, 'mouseover', function() { 
    infowindow.open(map, marker); 
}); 
infowindow.open(map, marker); 
0

function initMap() { 
 
    var cairo = {lat:18.519331, lng: 73.849421}; 
 
    var map = new google.maps.Map(document.getElementById('map'), { 
 
     scaleControl: true, 
 
     center: cairo, 
 
     zoom: 15, 
 
    }); 
 

 
    var infowindow = new google.maps.InfoWindow; 
 
    infowindow.setContent('<b>adddress</b>'); 
 

 
    var marker = new google.maps.Marker({map: map, position: cairo}); 
 
    infowindow.open(map, marker); 
 
    infoWindow.open(map); 
 
}
<script async defer 
 
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCrCByzXY6y5KMSOi9AuqWVf4VYZPyJ5SE&language=hi&region=EG&callback=initMap"> 
 
</script> 
 
<div id="map"></div>

+0

Byłoby lepiej, gdybyś wyjaśnił, dlaczego twój kod zadziała. –

Powiązane problemy