Я могу сказать вам, почему это не работает.Вы переопределяете одну и ту же функцию load () каждый раз в цикле.Поэтому, когда документ загружается и вызывается load (), он просто отображает последнюю карту.Кстати, вы должны также использовать Google Map V3 API вместо V2, но это другая тема.
Что-то вроде этого должно исправить это.Сначала поместите это в раздел :
<script type="text/javascript">
var loaders = [];
function load() {
for (var i = 1; i < loaders.length; i++) {
loaders[i]();
}
}
</script>
Затем измените ваш цикл на:
foreach($posts as $v) {
foreach($v as $v2) { ?>
<div>
<script type="text/javascript">
//<![CDATA[
loaders[<?php echo $num; ?>] = function() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map-<?php echo $num++; ?>"));
map.setCenter(new GLatLng(<?php echo $v2['location']['latitude']; ?>, <?php echo $v2['location']['longitude']; ?>), 13);
}
};
//]]>
<div id="map-<?php echo $num2++; ?>" style="width: 500px; height: 300px"></div>
<p><?php echo $v2['location']['latitude']; ?></p>
<p><?php echo $v2['location']['longitude']; ?></p>
</div>
<?php
}
}