0

GoMap宣言内に収まる方法でGoogleマップマーカー(CMSからのデータで生成される)を使用してJSONオブジェクトを変換しようとしています。CMSから複数のマーカーを取得して、それらをマップに配置しようとしています。

以下で詳しく説明します。

マーカーをループして、jsonにエンコードされた配列を作成します。

echo "<script>var googlePlaces = " . json_encode($googlePlaces) . ";</script>"; 

次に、次のオブジェクトを取得します。

[Object { title="Est. Avenida de Mayo",  lat="-34.60844234174374",  lon="-58.37414860725403"}, Object { title="Café Tortoni",  lat="-34.60871608361115",  lon="-58.378823697566986"}]

ここに合わせるだけです。

$(document).ready(function() {

    $("#map").goMap({ 
        latitude: config.location_lat, 
        longitude: config.location_lon, 
        zoom: 15,
        mapTypeControl: false, 
        maptype: 'ROADMAP',
        navigationControl: true, 
        navigationControlOptions: { 
            position: 'TOP_LEFT', 
            style: 'SMALL' 
        },
       markers: [{  
                    // Multiple markers here!
            latitude: XXXXXX, 
            longitude: XXXXXXX, 
            html: { 
                content: 'XXXXXXX'
            },
        }]
    });     
} 
}); // end

私はここで立ち往生しています。JSONオブジェクトを何らかの方法でループして、GoMapスクリプトのmarkersプロパティ内に配置する必要があることを知っていますか。これは正しいです?誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

このようなことを試して、JSONオブジェクト要素を繰り返し、配列にプッシュします。

 var markersArray = new Array();

 $.each(googlePlaces, function(i, itemPlace) {
     var obj = { 
                 latitude: itemPlace.lat, 
                 longitude: itemPlace.lon,
                 html: { content: itemPlace.title }
               };        

     markesArray.push(obj);

 });​

その後、gomapコードで次のようにmarkersArrayを使用します

$("#map").goMap({ 
   // your existing stuff
   markers: markersArray 
});     

幸運を !!

于 2012-08-11T06:28:22.973 に答える