0

Google マップにマーカーを表示することに成功しましたが、コード改善の理由により、会社の宣言 (マーカーで表される) をコードの一部にグループ化したため、表示パーは for ループに縮小されます。

マーカーではなく、マップのみが表示されます。なぜですか?

コードは次のとおりです:(最後の会社情報のみが表示されます。作成後、それらは配列である「企業」フィールドに格納されます。

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 ループは間違っていますか?

ご清聴ありがとうございました

オリビエ

4

1 に答える 1

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

于 2013-11-14T14:04:29.457 に答える