/** * Calcola il comune in cui cade la geometria data * @param string $wkt Geometria in WellKnownText format * @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_ByWKT($wkt) { $wkt_geom = Geometry::Transform(Geometry::ST_GeomFromText($wkt), Yii::app()->params['geoserver']['citystate_layer_srid']); //Yii::log(print_r($wkt_geom, true) , CLogger::LEVEL_INFO, 'Get_City_State_ByWKT'); // DEBUG //return; $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_Centroid(' . $wkt_geom . ') );'; $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_ByWKT_all($wkt); } else { return $rows; } }