Как отобразить все поля в массиве с помощью JavaScript? - PullRequest
1 голос
/ 18 октября 2011

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

function addMarker(latitude, longitude, title, news)
{
    var marker = new GMarker(new GLatLng(latitude, longitude));

    GEvent.addListener(marker, 'click',function() {
        marker.openInfoWindowHtml(title, news);
    });

    map.addOverlay(marker);
}

function init()
{
    if (GBrowserIsCompatible())
    {   
        map = new GMap2(document.getElementById("map")); 
        map.addControl(new GSmallMapControl());
        map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);

        for (id = 0; id < markers.length; ++id)
        {
            addMarker(markers[id].latitude, markers[id].longitude, markers[id].title, markers  [id].news); //
        }
    }
}

window.onload = init;
window.onunload = GUnload;

И это структура массива:

var markers = [
{
    'latitude': 56.7382105,
    'longitude': 12.8584020,
    'title': 'Hallo Planet',
    'news': 'blaaaa blaaaa blaaaa.'
},
{
    'latitude': 62.6549167,
    'longitude': 16.6354329,
    'title': 'Hallo World',
    'news': 'bla bla bla.'
},
];

Я пробовал также без запятой после фигурной скобки }, но результат точно такой же.

1 Ответ

0 голосов
/ 17 ноября 2011

Google "openInfoWindowHtml" принимает два параметра, но не те. См. их документацию по этому .

Чтобы отформатировать текст заголовка и в этом информационном окне, вам нужно объединить элементы title и news в одну строку (с форматированием HTML). Или вы можете использовать openInfoWindow с готовым узлом DOM, готовым к работе. Попробуйте:

marker.openInfoWindowHtml("<h1>" + title + "</h1> " + news);

Это работает лучше?

...