Proplem с информационным окном в Google Maps - PullRequest
0 голосов
/ 01 февраля 2012

Я получаю некоторую информацию от API. Я звоню геокодеру, чтобы получить точку, а затем создаю свой маркер с текстом для информационных окон. Мой маркер размещается на карте без проблем.

Но когда я нажимаю на маркер, он всегда отображает один и тот же текст. Я не могу понять, как «предварительно заполнить» информационное окно, поэтому, когда я нажимаю на маркер, оно отображает правильную информацию ...

function createMarker(point, text) {
alert('point: ' + point + 'text: ' + text)
var html ="<div class='infowindow'><strong>"+ text + "<\/strong><\/div>";
//var marker = new GMarker(point, markerOptions);
var marker = new google.maps.Marker({    
    map: map,  
    position: point
});  

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

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

return marker;
}

Надеюсь, это достаточно ясно! Я использую Google API V3

Разрешил, используя следующий код:

function createMarker(point, text) {
//var html ="<div class='infowindow'><strong>"+ text + "<\/strong><\/div>";
//var marker = new google.maps.Marker({    
//    map: map,  
//    position: point
//});  

//infowindow = new google.maps.InfoWindow({  
//  content: html  
//});  

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

//});       
//return marker;

var title = 'LinkedIn Connection';
var html = "<div class='infowindow'><strong>"+ text + "<\/strong><\/div>";

var marker = new google.maps.Marker({
    title:title,
    content:html,
    map:map,
    draggable:false,
    position:point
});

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

    /* close the previous info-window */
    closeInfos();

    /* the marker's content gets attached to the info-window: */
    var info = new google.maps.InfoWindow({content: this.content});

    /* trigger the infobox's open function */
    info.open(map,this);

    /* keep the handle, in order to close it on next click event */
    infos[0]=info;

});

}

function closeInfos(){

   if(infos.length > 0){

  /* detach the info-window from the marker */
  infos[0].set("marker",null);

  /* and close it */
  infos[0].close();

  /* blank the array */
  infos.length = 0;

} }

1 Ответ

0 голосов
/ 08 февраля 2012
function createMarker(point, text) {
//var html ="<div class='infowindow'><strong>"+ text + "<\/strong><\/div>";
//var marker = new google.maps.Marker({    
//    map: map,  
//    position: point
//});  

//infowindow = new google.maps.InfoWindow({  
//  content: html  
//});  

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

//});       
//return marker;

var title = 'LinkedIn Connection';
var html = "<div class='infowindow'><strong>"+ text + "<\/strong><\/div>";

var marker = new google.maps.Marker({
    title:title,
    content:html,
    map:map,
    draggable:false,
    position:point
});

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

    /* close the previous info-window */
    closeInfos();

    /* the marker's content gets attached to the info-window: */
    var info = new google.maps.InfoWindow({content: this.content});

    /* trigger the infobox's open function */
    info.open(map,this);

    /* keep the handle, in order to close it on next click event */
    infos[0]=info;

});
}

function closeInfos(){

   if(infos.length > 0){

  /* detach the info-window from the marker */
  infos[0].set("marker",null);

  /* and close it */
  infos[0].close();

  /* blank the array */
  infos.length = 0;
} }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...