2013-08-18 2 views
3

페이지로드시 InfoWindow의 중심에 문제가 있습니다. 로드시,지도는 마커를 중심으로 InfoWindow를 화면에서 떼어냅니다 (지도 컨테이너의 짧은 높이로 작업하고 있습니다).센터 Google지도 InfoWindow로드시

이제 마커를 클릭하면 InfoWindow에서 맵의 중심을 다시 정렬하므로 원하는 모양이됩니다. 그 경우, 나는 심지어 마커를 발사하여로드에 대한 솔루션을 얻으려고 시도했지만 행운이 없었습니다. 내가 뭘 놓치고 있니?

JSFIDDLE : http://jsfiddle.net/q9NTS/7/

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script type="text/javascript"> 
    var geocoder = new google.maps.Geocoder(); 
    var marker; 
    var infoWindow; 
    var map; 
    function initialize() { 
     var mapOptions = { 
      zoom: 15, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'), 
      mapOptions); 
     setLocation(); 
    } 

    function setLocation() { 
     var address = '@(Model.Event.Address)' + ', ' + '@(Model.Event.City)' + ', ' + '@(Model.Event.State)' + ' ' + '@(Model.Event.Zip)'; 
     geocoder.geocode({ 'address': address }, function (results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       var position = results[0].geometry.location; 
       marker = new google.maps.Marker({ 
        map: map, 
        position: position, 
        title: '@(Model.Event.Venue)' 
       }); 
       map.setCenter(marker.getPosition()); 

       var content = 'blah'; 
       infoWindow = new google.maps.InfoWindow({ 
        content: content 
       }); 

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

       //infoWindow.open(map, marker); doesn't work 
       google.maps.event.trigger(marker, 'click'); //still doesn't work 
      } 
      else { 
       // 
      } 
     }); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

답변

6

당신은 분명히 직전에 클릭 이벤트를 트리거 더 이상 기다릴 필요가있다.

내가 조금 짧은 대기 시간을 만들었지 만, 일

fiddle

+0

// wait until the map is idle. google.maps.event.addListenerOnce(map, 'idle', function() { setTimeout(function() { // wait some more (...) google.maps.event.trigger(marker, 'click'); //still doesn't work },2000); }); 
. 제안 해 주셔서 감사합니다. 나는 뭔가 더 청결한 것에 관심이있을 것이다. 그러나 나는 확실히 이것을 가지고 갈 것이다. –

+0

나는 특히 그것을 좋아하지도 않는다. 새로운 이벤트 기반 v3 API를 사용하면 모든 것이 완료되면 알 수있는 이벤트가 있어야하며 click 이벤트가 올바르게 작동하지만 알 수 있으면 잘 알려지지 않습니다. – geocodezip

+0

부적이 작품에 감사드립니다! – davidbucka