Como faço para inserir um ponto espacial mysql com um modelo yii?

Eu tenho um tipo de modelo que foi gerado a partir de uma tabela mysql que tem dados de endereço e também um espaçoPOINT campo chamado "coordenadas". Quando um modelo é criado ou atualizado, quero geocodificar o endereço e armazenar as coordenadas de latitude e longitude noPOINT campo.

Minha compreensão é que a maneira de fazer isso é geocodificar o endereço no modelo debeforeSave método. Eu fiz isso e tenho as coordenadas em um array associativo. Agora minha pergunta é como posso inserir esses dados no meu campo de coordenadas? É isso que estou tentando:

public function beforeSave()
{
    $singleLineAddress = $this->getSingleLineAddress();
    $coords = Geocoder::getCoordinates($singleLineAddress);

    // WORKS: using the following line works to insert POINT(0 0)
    //$this->coordinates = new CDbExpression("GeomFromText('POINT(0 0)')");

    // DOESN'T WORK: using the following line gives an error
    $this->coordinates = new CDbExpression("GeomFromText('POINT(:lat :lng)')",
        array(':lat' => $coords['lat'], ':lng' => $coords['lng'] ));

    return parent::beforeSave();
}

Quando faço isso, recebo o seguinte erro:

CDbCommand falhou ao executar a instrução SQL: SQLSTATE [HY093]: Número do parâmetro inválido: o número de variáveis ​​ligadas não corresponde ao número de tokens. A instrução SQL executada foi: INSERT INTOplace (city, state, name, street, postal_code, phone, created, coordinates) VALORES (: yp0,: yp1,: yp2,: yp3,: yp4,: yp5, UTC_TIMESTAMP (), GeomFromText ('POINT (: lat: lng)'))

questionAnswers(2)

yourAnswerToTheQuestion