/** * return array of polygons to draw * * @return array */ public function getPolygons() { $polygons = array(); $string = $this->_mapRequest->getPolygonsPoints(); if (is_null($string)) { return array(); } $coordinatesStrings = explode(self::$drawObjectDelimeter, $string); foreach ($coordinatesStrings as $coordinatesString) { $coordinates = explode(self::$paramDelimeter, $coordinatesString); $polygon = new DrawPolygon(); $i = 0; foreach ($coordinates as $coordinate) { if ($i == 0 && is_numeric($coordinate)) { $lon = $coordinate; $i++; } else { if (is_numeric($coordinate)) { $addPoint = new DrawMarkPoint($lon, $coordinate); $polygon->addPoint($addPoint); $i = 0; } else { $param = ParamFactory::create($coordinate); $polygon->setParam($param); } } } $polygons[] = $polygon; } return $polygons; }