带有谷歌地图的JavaScript:不显示标记

时间:2013-11-14 13:57:42

标签: javascript google-maps netbeans

我成功设法在谷歌地图中显示标记,但由于代码改进的原因,我将公司的声明(由标记表示)分组在代码的一部分中,因此显示标准缩小为for loop。

但只显示地图,而不是标记。为什么?

这里是代码:(仅显示最后的公司信息;创建后,它们存储在“entreprises”字段中,这是一个数组。

var anx_wing_addresse = '<div style="width:240px;margin:0 0 20px
20px;height:130px;text-align:left;color:black"><h1>Gerwing-Sehn GmbH & Co. KG</h1>' +
                    '<p>Oststra&beta;e 65<br/>' +
                    'D-66386 St Ingbert<br/>' +
                    'www.sehn.de</p>' +
                    '<p>T�l : +49(0)6894 3873-160<br/>' +
                    'Fax : +49(0)6894 3873-169</p></div>';
            var anx_wing = new Entreprise("Gerwing-Sehn GmbH & Co. KG", anx_wing_addresse,
                    "anx_gerwing", false, false, false, true,
                    49.274763, 7.129415,
                    'images/icones_google_maps/noir20.png');
            entreprises.push(anx_wing);

            var latlng = new google.maps.LatLng(50.365613, 7.556992);
            //objet contenant des propri�t�s avec des identificateurs pr�d�finis dans Google Maps permettant
            //de d�finir des options d'affichage de notre carte
            var options = {
                center: latlng,
                zoom: 6,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                draggable: true
            };

            //constructeur de la carte qui prend en param�tre le conteneur HTML
            //dans lequel la carte doit s'afficher et les options
            var carte = new google.maps.Map(document.getElementById("carte"), options);

            for (ent in entreprises) {



                infowindow1 = new google.maps.InfoWindow({
                    content: ent.descriptionHTML
                });

                marker = new google.maps.Marker({
                    position: ent.loc,
                    map: carte,
                    title: ent.nom,
                    icon: ent.chemin_image
                });
                google.maps.event.addListener(marker, 'click', function() {
                    new google.maps.InfoWindow({
                        content: ent.descriptionHTML
                    }).open(marker);
                });

            }

是for ... in循环错误?

感谢您的关注

奥利弗

1 个答案:

答案 0 :(得分:0)

尝试将标记添加到集合中:

var markers = [];
var counter = 0;
for (ent in entreprises) {
    infowindow1 = new google.maps.InfoWindow({
        content: ent.descriptionHTML
    });

    markers[counter] = new google.maps.Marker({
        position: ent.loc,
        map: carte,
        title: ent.nom,
        icon: ent.chemin_image
    });

    google.maps.event.addListener(markers[counter], 'click', function() {
        new google.maps.InfoWindow({
            content: ent.descriptionHTML
        }).open(markers[counter]);
    });
    counter++;
}

此外,您的ent.loc必须是有效的google.maps.LatLng对象