sqlManager = new \database\SpsSqlManager(); parent::__construct(); $this->contentType("Content-type: application/xml;charset=utf-8"); } /** * 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 = array()) { $result = $this->sqlManager->sendSpsAliasQuery($queryArgs); return \utiliy\XmlManager::arrayToSpsXml($result); } /** * Method start a sps-query(Coordinates) * @param array $queryArgs * @return querry result as xml */ public function sendSpsCoordinateQuery($queryArgs = array()) { if (!array_key_exists(SpsApi::$keyLong, $queryArgs) || !array_key_exists(SpsApi::$keyLat, $queryArgs)) { return null; } $latitude = $queryArgs[SpsApi::$keyLat]; $longitude = $queryArgs[SpsApi::$keyLong]; if (!$this->validLatitude($latitude) || !$this->validLongitude($longitude)) { return null; } $queryArgs[SpsApi::$keyPoly] = $this->createPolygon($latitude, $longitude, $this->range); $result = $this->sqlManager->sendSpsCoordinateQuery($queryArgs); return \utiliy\XmlManager::arrayToSpsXml($result); } /** * 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 <= $this->maxLong && $string >= $this->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 <= $this->maxLat && $string >= $this->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 $this->polyStartStr . "$minLat $minLong,$minLat $maxLong,$maxLat $maxLong,$maxLat $minLong,$minLat $minLong" . $this->polyEndStr; } } ?>