2013-05-28 4 views
2

Я хотел бы знать, как открыть информационное окно, когда я нажимаю на маркер, я думал, что это правильно, но не работает. Это сценарий,Как получить infoWindow, нажав на маркер

var map; 
function initialize() { 
    navigator.geolocation.getCurrentPosition(function(position){ 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 
     var coords = new google.maps.LatLng(latitude, longitude); 
     var mapOptions = { 
      disableDefaultUI: true, 
      center: coords, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
     map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
     placeMarker(); 
     var infowindow = new google.maps.InfoWindow(); 
     google.maps.event.addListener(marker, 'click', function() { 
      getComment(marker, infowindow); 
     }); 
}); 
} 
function getComment(marker, infowindow){ 
    var message = "Hello"; 
    infowindow.setContent(message); 
    infowindow.open(map, marker); 
} 
function placeMarker() { 
    //place some marker 
} 
google.maps.event.addDomListener(window, 'load', initialize); 

Спасибо за любые предложения!

+0

См [документацию по infowindows] (https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows). Я получаю «маркер не определено» с кодом, опубликованным (потому что он не определен). [Вот пример использования нескольких маркеров с помощью infowindows] (http://www.geocodezip.com/v3_markers_infowindows.html) – geocodezip

ответ

0

Не запускайте его в jsfiddle, но приведенный ниже код должен работать.

Вы должны указать var marker у вашей функции placeMarker(), как будто вы сделали это с помощью infoWindow.

var map; 
function initialize() { 
    navigator.geolocation.getCurrentPosition(function(position){ 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 
     var coords = new google.maps.LatLng(latitude, longitude); 
     var mapOptions = { 
      disableDefaultUI: true, 
      center: coords, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
     map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

     //position of marker = coords in this example 
     var marker = new google.maps.Marker({ 
      position: coords, 
      map: map, 
      title: "randomTitle", 
      zIndex: Math.round(latlng.lat()*-100000)<<5 
     }); 
     var infowindow = new google.maps.InfoWindow(); 
     google.maps.event.addListener(marker, 'click', function() { 
      getComment(marker, infowindow); 
     }); 
}); 
} 
function getComment(marker, infowindow){ 
    var message = "Hello"; 
    infowindow.setContent(message); 
    infowindow.open(map, marker); 
} 
google.maps.event.addDomListener(window, 'load', initialize);