Вы выполняете следующий цикл <?php foreach($get_data->result() as $row) {
два раза в своем коде.
Первый раз, когда он генерирует в JavaScript что-то похожее на
var icons = {
info: {
icon: 'assets/marker_hijau.png'
}
};
var icons = {
info: {
icon: 'assets/marker_merah.png>'
}
};
var icons = {
info: {
icon: 'assets/marker_biru.png>'
}
};
var icons = {
info: {
icon: 'assets/marker_merah.png>'
}
};
Итак, вы просто переопределяете то же самоепеременная несколько раз, и очевидно, что JavaScript будет использовать последнее значение, которое вы присвоили icons
переменной.
Второй цикл создает структуру массива, и я бы посоветовал поместить инициализацию значка также во второй цикл, чтобы вы могли определить свойство значка для каждой функции и использовать его позже в JavaScript.
Iпереписал бы ваш код на что-то похожее на
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"
type="text/javascript">
</script>
<script type="text/javascript">
var map;
function init(){
map = new google.maps.Map(document.getElementById('maps'), {
zoom: 10,
center: new google.maps.LatLng(-7.320795, 112.731386),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var features = [
<?php foreach($get_data->result() as $row) {
$nilai = $row->nilai; ?>
{
position: new google.maps.LatLng(<?php echo $row->lat;?>,<?php echo $row->long;?>),
type: 'info',
<?php if($nilai >= 0 && $nilai <=50) {?>
icon: '<?php echo base_url("assets/marker_merah.png");?>',
<?php } elseif($nilai >= 51 && $nilai <=69) { ?>
icon: '<?php echo base_url("assets/marker_hijau.png");?>',
<?php } elseif($nilai >= 70) { ?>
icon: '<?php echo base_url("assets/marker_biru.png");?>',
<?php } ?>
title : '<?php echo $row->nama;?>'
},
<?php } ?>
];
// Create markers.
features.forEach(function(feature) {
var marker = new google.maps.Marker({
position: feature.position,
icon: feature.icon,
title: feature.title,
map: map
});
});
}
google.maps.event.addDomListener(window, 'load', init);
</script>
Надеюсь, это поможет!