我正在尝试使用适合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脚本中的markers属性中。它是否正确?任何人都可以指出我正确的方向吗?
答案 0 :(得分: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
});
祝你好运!!