sqlManager = new \database\SpsSqlManager(); parent::__construct($headers); } /** * Default-DeConstructor */ public function __destruct() { parent::__destruct(); } /** * Method start a sps-query(alias) * @param array $queryArgs * @return querry result as xml */ public function sendSpsAliasQuery($queryArgs) { $result = $this->sqlManager->sendSpsAliasQuery($queryArgs); return $this->serialManager->arrayToSps($result); } /** * Method start a sps-query(Coordinates) * @param array $queryArgs * @return querry result as xml */ public function sendSpsCoordinateQuery($queryArgs) { // check arguments of the query if (!array_key_exists(self::$keyLong, $queryArgs) || !array_key_exists(self::$keyLat, $queryArgs)) { return null; } $latitude = $queryArgs[self::$keyLat]; $longitude = $queryArgs[self::$keyLong]; if (!$this->validLatitude($latitude) || !$this->validLongitude($longitude)) { return null; } // build a request polygon if (array_key_exists(self::$keyRange, $queryArgs)) { $newRange = $queryArgs[self::$keyRange]; if ($this->validRange($newRange)) { self::$range = $newRange; } else { return; } } $queryArgs[self::$keyPoly] = $this->createPolygon($latitude, $longitude, self::$range); // send querry $result = $this->sqlManager->sendSpsCoordinateQuery($queryArgs); return $this->serialManager->arrayToSps($result); } /** * Method check if a string is a valid Longitude * @param string $string * @return bool */ private function validRange($string) { $digit = str_replace(".", "", $string); if (ctype_digit($digit)) { return TRUE; }; return FALSE; } /** * Method check if a string is a valid Longitude * @param string $string * @return bool */ private function validLongitude($string) { $digitLessPoint = str_replace(".", "", $string); $digit = str_replace("-", "", $digitLessPoint); if (ctype_digit($digit)) { if ($string <= self::$maxLong && $string >= self::$minLong) { return TRUE; } }; return FALSE; } /** * Method check if a string is a valid Latitude * @param strinf $string * @return bool */ private function validLatitude($string) { $digitLessPoint = str_replace(".", "", $string); $digit = str_replace("-", "", $digitLessPoint); if (ctype_digit($digit)) { if ($string <= self::$maxLat && $string >= self::$minLat) { return TRUE; } }; return FALSE; } /** * Method create a Polygon * @param float $latitude * @param float $longitude * @param float $range * @return string */ private function createPolygon($latitude, $longitude, $range) { $minLat = $latitude - $range; $minLong = $longitude - $range; $maxLat = $latitude + $range; $maxLong = $longitude + $range; return self::$polyStartStr . "$minLat $minLong,$minLat $maxLong,$maxLat $maxLong,$maxLat $minLong,$minLat $minLong" . self::$polyEndStr; } } ?>