Я получаю некоторую информацию от 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;
}
}