Exemple #1
0
    /**
     * Calcola il comune in cui cade la geometria data
     * @param integer $id Id della geometria
     * @return array the result set (each array element represents a row of data). An empty array will be returned if the result contains no row. NULL is returned if ID is null.
     */
    public static function Get_City_State_ByID($id)
    {
        $connection = Yii::app()->db;
        $sql = '
			SELECT confini_comunali.gid, confini_comunali.id, confini_comunali.nome, confini_comunali.the_geom
            FROM confini_comunali
            WHERE st_intersects(
            			confini_comunali.the_geom,
              			ST_Transform(( SELECT centroids.centroid
                       				FROM centroids
                       				WHERE centroids.id = ' . $id . '),
                       			 ' . Yii::app()->params['geoserver']['citystate_layer_srid'] . ')
                   		);';
        $command = $connection->createCommand($sql);
        $dataReader = $command->query();
        // calling read() repeatedly until it returns false
        //while(($row=$dataReader->read())!==false) { 		}
        // using foreach to traverse through every row of data
        //foreach($dataReader as $row) { }
        // retrieving all rows at once in a single array
        $rows = $dataReader->readAll();
        //Yii::log(print_r($rows) , CLogger::LEVEL_INFO, 'Query.DB');  // DEBUG
        if (count($rows) > 1) {
            return Geometry::Get_City_State_ByID_all($id);
        } else {
            return $rows;
        }
    }