Hola a todos!! hace algunos meses conocí Yii framework, y estoy empezando a realizar una aplicación con el mismo… Tengo un controlador con una función que usa una extension (EGmap), donde tomo los datos de una DB y los grafico en google maps mediante esta extension:
private function actionLastId(){
$sql = "SELECT * FROM gps_reports WHERE Id=(SELECT MAX(Id) FROM gps_reports)";
$rows = Yii::app()->db->createCommand($sql)->queryRow();
return $rows;
}
Me retorna un array como el siguiente:
[b]Array
(
[Id] => 12
[Id_Movil] => 1042
[Latitud] => -34.53627
[Longitud] => -58.57105
[Velocidad] => 2
[Rumbo] => 0
[GPS] => 3
[EVE] => 60
[Fecha_Hora] => 2013-02-10 00:51:50
[NMV] => 6B3C
[Vbat] => 397
[Vmain] => 1317
[Sats] => 70710
[FechaHoraServ] => 2013-02-09 22:17:01
)[/b]
Ahora, tomo ese array para poder usar sus coordenadas en la función:
$ultimoregistro = $this->actionLastId();
$ultimoregistro[‘Latitud’]
public function actionUltimaposicion($Mapzoom=5){
$ultimoregistro = $this->actionLastId();
// flechas
$flechasur=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechanorte=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechaeste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechaoeste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechasudeste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechasudoeste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechanoreste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$flechanoroeste=Yii::app()->request->baseUrl."/image/flechas/Sur.png";
$gMap = new EGMap();
$gMap->setJsName('posicion_gps');
$gMap->width = 500;
$gMap->height = 500;
$gMap->zoom = $Mapzoom;
$mapTypeControlOptions = array(
'position'=> EGMapControlPosition::LEFT_BOTTOM,
'style'=>EGMap::MAPTYPECONTROL_STYLE_DROPDOWN_MENU
);
$gMap->mapTypeControlOptions= $mapTypeControlOptions;
$gMap->setCenter($ultimoregistro['Latitud'],$ultimoregistro['Longitud']); // El centro debe ser tomado de la posición
$info_window_a = new EGMapInfoWindow('<div><strong>'.$ultimoregistro['Id_Movil'].'</strong></div>'); //Ventana de información
// Configuracion de ícono. Deberia haber un condicional que cambie el ícono segun la orientacion
$icon = new EGMapMarkerImage("com/files/gazstation.png");
$icon->setSize(32, 37);
$icon->setAnchor(16, 16.5);
$icon->setOrigin(0, 0);
// Marcador con la posicion. Aca se determina la posicion del vehiculo
$marker = new EGMapMarker($ultimoregistro['Latitud'],$ultimoregistro['Longitud'], array('title' => 'Marker With Custom Image','icon'=>$icon));
// $marker = new EGMapMarker(-34.308401,-59.316833, array('title' => 'Marker With Custom Image','icon'=>$icon));
$marker->addHtmlInfoWindow($info_window_a); //Agrega la ventana con la informacion
$gMap->addMarker($marker); // Invonca la funcion de agregar un marcador con $marker definido anteriormente
// enabling marker clusterer just for fun
// to view it zoom-out the map
$gMap->enableMarkerClusterer(new EGMapMarkerClusterer());
// $gMap->renderMap();
// renderiza la vista con el mapa
$this->render('ultima',array('model'=>$ultimoregistro,));
}
Pero no puedo lograr que me funcione de esta manera. Si le paso el array en el render(), y uso el codigo de la extensión en la vista, me funciona bien. Tampoco estoy entendiendo bien, como debería pasar $gMap->renderMap(); para renderizarlo en la vista.
Alguna mano para resolver mi duda?
Gracias
Mauro