Похоже, вы используете мою CodeIgniter Google Maps Library .Проблема, с которой вы сталкиваетесь, заключается в том, в каком порядке вы выполняете действия. Попробуйте сделать что-то вроде этого: (не проверено)
Контроллер:
function index() {
// initialize the map
$this->googlemaps->initialize();
// get the markers, loop through the markers and add them to the map
$infoMarkers = $this->main_model->get_map();
foreach ($infoMarkers as $infoMarker) {
$marker = array();
$marker['position'] = $infoMarker->lat.",".$infoMarker->lng;
$this->googlemaps->add_marker($marker);
}
// create the map with added markers
$data['map'] = $this->googlemaps->create_map();
// load your view
$this->load->view('main_view',$data);
}
Модель:
public function get_map()
{
$data = array();
$this->db->select ('lat,lng');
$sql = $this->db->get('info');
if ($sql->num_rows () >0)
{
foreach($sql->result() as $row) {
$data[] = $row;
}
}
return $data;
}
Просмотр:
<html>
<head>
<?php echo $map['js']; ?>
</head>
<body>
<?php echo $map['html']; ?>
</body>
</html>
Обратите внимание на то, как широта / долгота циклически проходит в контроллере.Для каждой итерации мы вызываем функцию add_marker для добавления каждого отдельного маркера.
Надеюсь, это поможет! Посмотрите демоверсии , так как они могут помочь разобраться:)