0

我正在尝试以适合 GoMap 声明的方式转换带有谷歌地图标记(由 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 脚本中的标记属性中。这个对吗?谁能指出我正确的方向?

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 回答