hola amigos lo q quiero hacer es lo siguiente, en mi vista tengo un cGridView donde muestro unos usuarios y su ubicacion guardada y alli tengo un un chtml:link en cada fila del cgridView en el cual cuando de click quiero q vaya a mi modelo y me consulte todos los registros de ese usuario y me los grafique, tengo lo siguiente en el modelo
UbicacionLideres
public function search()
	{
            $criteria=new CDbCriteria;
            //aca traemos la relacion tercero con usuarios
            $criteria->with = array('idUsuario.idTercero');
            //alias tabla ubicacionLideres
            $criteria->alias='t1';
            $criteria->select=array('t1.id_ubicacion','t1.id_usuario','t1.latitud','t1.longitud','t2.fecha');
            //inner join con la misma para sacar la ultima fecha de cada ubicacion
            $criteria->join='inner join(
                            SELECT id_ubicacion,id_usuario, MAX(fecha) AS fecha
                            FROM ubicacion_lideres
                            GROUP BY id_usuario
                            ) t2  ON T1.id_usuario= t2.id_usuario
                            AND t1.fecha = t2.fecha';
            //$criteria->compare('t2.fecha',$this->fecha,true);
            $criteria->compare('idTercero.nombre',$this->nombre,true);
            return new CActiveDataProvider($this, array(
                            'criteria'=>$criteria,
            ));
	}
el codigo anterior me muestra todos los usuarios una vez, pues cada usuario puede registrar su ubicacion muchas veces.
 public function getListarUbicacionLider($id_usuario)
    {
           //$id_usuario = $_GET['id_usuario'];
            $criteria=new CDbCriteria;
            $criteria->condition = 'id_usuario=:id_usuario';
            $criteria->params = array(':id_usuario'=>$id_usuario);
            $ubicaciones =  UbicacionLideres::model()->findAll($criteria);
            $lista = array();
            foreach($ubicaciones as $v)
                $lista[] = array($v->latitud, $v->longitud,$v->idUsuario->idTercero->nombre);
            return $lista;
    } 
este codigo anterior es el q me consultaria despues de seleccionar un registro del gridview, las veces q se encuentra en la BD, esto lo hago en el modelo…
en la vista tengo lo siguiente
<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'ubicacion-lideres-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
            array(
                   'name'=>'id_usuario', 
                   'header'=>'Nombre del Lider',
                   'value'=>'$data->idUsuario->idTercero->nombre',
                   'htmlOptions'=>array('style'=>'width:400px;'),
                   'filter' => CHtml::activeTextField($model,'nombre'),
		),
            array(
            'name'=>'fecha',
            'filter' => false, // para que no se muestre el campo de filtrar para el atributo direccion
            ),
            array(
                'header' => '',
                'type' => 'raw',
                'value' => 'CHtml::link("Ver Ubicacion", null, array("onclick" => "javascript:cargarmap($data->id_usuario)", "class" => "btn"))',
                'htmlOptions' => array('style'=>'cursor: pointer;','width'=>'75px')
        ),
		
)));?>
<div id="mapholder"></div>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
 function cargarmap(id_usuario){
        window.alert(id_usuario);
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    function showPosition(position){
        mapholder=document.getElementById('mapholder')
        mapholder.style.height='500px';
        mapholder.style.width='900px';
        latlon=new google.maps.LatLng(7.122980000000001, -73.12817999999999);
        var marcadores= <?php echo json_encode($model->ListarUbicacionLider(id_usuario))  ?>;
        
        var myOptions={
        center:latlon,
        zoom:15,
        mapTypeId:google.maps.MapTypeId.ROADMAP,
        mapTypeControl:false,
        disableDoubleClickZoom:false,
        navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
        };
        var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
        var marker,i;
        var geocoder = new google.maps.Geocoder();
        var titulo;
        for( i=0;i<marcadores.length;i++)
        {
            
            lat=marcadores[i][0];
            lon=marcadores[i][1];
            latlon=new google.maps.LatLng(lat, lon);
            marker=new google.maps.Marker({position:new google.maps.LatLng(lat,lon),map:map});
            marker.setMap(map);
            var infowindow = new google.maps.InfoWindow({
                content: 'lathola'});
              
var usuario;
usuario= marcadores[i][2];
(function(marker, latlon,usuario){  
    google.maps.event.addListener(marker, 'click', function() {
        geocoder.geocode({'latLng': latlon},  function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    infowindow.setContent('Lider: '+usuario+',<p> ' +results[1].formatted_address+'</p>');
                    infowindow.open(map, marker);
                }
            } else {
                alert("Problema al encontrar la dirección: " + status);
            }
        });
    });
})(marker,latlon,usuario);
               /*geocoder.geocode({'latLng': latlon},  function (results, status) {
                
                if (status == google.maps.GeocoderStatus.OK) {
                    
                    if (results[1]) {
                      //  var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
                        marker=new google.maps.Marker({position:new google.maps.LatLng(lat,lon),map:map,title:results[0].formatted_address});
                        marker.setMap(map);
                    }
                } else {
                    alert("Geocoder failed due to: " + status);
                }
                   
            });*/
        }
} 
        function showError(error){
            switch(error.code){
                case error.PERMISSION_DENIED:
                  x.innerHTML="Denegada la peticion de Geolocalización en el navegador."
                  break;
                case error.POSITION_UNAVAILABLE:
                  x.innerHTML="La información de la localización no esta disponible."
                  break;
                case error.TIMEOUT:
                  x.innerHTML="El tiempo de petición ha expirado."
                  break;
                case error.UNKNOWN_ERROR:
                  x.innerHTML="Ha ocurrido un error desconocido."
                  break;
        }
    }   
}  
</script>
este codigo anterior es en donde tengo problema porq no se como mandarle el id_usuario para q me llene
[b] var marcadores= <?php echo json_encode($model->ListarUbicacionLider(id_usuario)) ?>;
[/b] y q me devuelva los registros, gracias y espero haberme hecho entender