From 5c11441ef514e646619cdff14bd5aa64cc8a7344 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 10 Jul 2013 10:31:07 +0200 Subject: [PATCH 1/5] update db --- map/campuse.dbf | Bin 433 -> 433 bytes map/campuse.shp | Bin 15852 -> 1572 bytes map/campuse.shx | Bin 132 -> 132 bytes map/campusse.csv | 8 +- sql/insert/example/insert-20130710.sql | 460 +++++++++++++++++++++++++ 5 files changed, 464 insertions(+), 4 deletions(-) create mode 100644 sql/insert/example/insert-20130710.sql diff --git a/map/campuse.dbf b/map/campuse.dbf index 0c2c835ad318846643d3965bcd03ccd191e08a2d..c1b2bd7469ba61d1e4cabf7e0b18ec9c4418063f 100644 GIT binary patch delta 23 fcmdnUypefA&*TC|$BAdTC#x{}OuXSUvBwbrZc_6@=x;)n(%$lm>Fyork+tA0J4yJE?y6mST%mOLof$Ft9UpO~+s*b}6 z`PgMyk3Ah=dgBsJEAtgkG3g7TRKqrabm^*kdf(Dl{FTf0Apnizg`8p3UNZ$?fpLE>NYH7kglrsMG1 zSaEj5V^4>TT&*8ZPt|c?D1L69^4QY>-MtJ93``6Rj13@vhcWg9+*zdKu!rCG_3np= zFpRr&ys7Pxrvu2}x=??^)cTa2%5Qk&=}>zpvB7q+jzikqTBepqo(>le&x?;+tmELa zTI561BTt7-YNp|VOLQDyX7TSWNWZ&8$DuE3&J>XRk1ebdte5FHcxPbm)`$@Th;8jzdU;kVonxPltp%9mW@y={Q7tpE#cM$kQP?x#Qhu zB!0k&A5Cn_5%P~$JeD$FuHzt?{%ujhBTt9WYu|tPF4u85w>|G4h|m9)F(VR5eZNuc zlsU_F9JnraEe6@AB|Cv-({de$dHS>7q&)I;cpL2hcijqv`-DYRbp=-HIIx{bGY7f% z_=;zBQ7d&E8l6Jj!X6>Qvgmd7e5XgA4)YQOr(9j3hN>D|8%m_uELYJo0qN{A0WK;Bp;@ICnuUhDV+bF!u$2jedXcp{GN1 zq=Oj$avcZDb1PzQKlF6C#5q^+`7%UYF0(q3ZMRIvK~nnCqJs}T9bT!I&YHSR$Kh-C zrZ%oeo(>;Y?cE->OvfQ--m443p!mzEWDi-Y<8biaP7awzo(^w#1HILj>NsrgVLA8f zp{K*`JT9keOLQD;LRX0Yf9UCO^x%<0c1v^|!fK*dF+K8h;9JhT?ZRRmhpDq>@BaDF z(}AIXPx_L@Iu1ALav%JD=;dr?JRPcz zNysf&tm9Dk>-l34zcoBzFr;taYl7JRQ3HKb1aS zq~maD&!nv2N1hJ4F1h>eF4A$BmhvPg9Sa{l{W35xFf%YP1c36vQ{ShphKqC@u89_0 zU3bUR!TiVORjZchIGp{oT*c@vBpdt~k(iftCYCC+}aOvx}L!J(w*OhHQ^i$hGP+a2S z!$Y198Xc2O1Ab{cl<7PzICIF;;SBrHYZrcLJFp#1T6W-&rvuDv>!4_r^@ltiUK-E2 zdhD0B!<6ZMCsrQvbSU|9@iFT!MENW8@ZJZjpV|)TSGiB^IOOT@>|@Bm1>dzDJhK)R z-9F^$VEg_SQ~Y;r2Ok5Iwr7Vt9bkUZV~K75aLCi4@lLzpw(r^w-kbQZiXZlLST%Fm M;Vs`0ena;U0C%dI;s5{u literal 15852 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 diff --git a/map/campuse.shx b/map/campuse.shx index 81ed7b62cf2163c13f81154ee28500ac7511b244..a6e85ca53c0821da0eee0346ab90f3a0f5da3819 100644 GIT binary patch delta 65 zcmZo+Y+; Date: Wed, 10 Jul 2013 11:34:07 +0200 Subject: [PATCH 2/5] finish #69 --- geoapi/api/PisApi.php | 34 +++++++++-- geoapi/database/PisSqlManager.php | 26 ++++++-- geoapi/database/SqlManager.php | 35 ++++++++--- geoapi/service/pis/index.php | 12 +++- geoapi/utility/ArrayManager.php | 17 +++++- geoapi/utility/StringManager.php | 8 ++- map/btucscampus.qgs | 98 +++++++++++++++---------------- 7 files changed, 163 insertions(+), 67 deletions(-) diff --git a/geoapi/api/PisApi.php b/geoapi/api/PisApi.php index 9ce27d5..2f81ff2 100644 --- a/geoapi/api/PisApi.php +++ b/geoapi/api/PisApi.php @@ -15,11 +15,29 @@ require_once PATH_API . "/Api.php"; class PisApi extends Api { /** - * Route string for the alias paramter + * Route string for the pids paramter * @var string */ public static $routeParameterPids = "/pid/:pid+"; + /** + * Route string for the iNames paramter + * @var string + */ + public static $routeParameterINames = "/iname/:iname+"; + + /** + * Keyword for pidList arguments + * @var string + */ + public static $keyPidList = "pidList"; + + /** + * Keyword for iNameList arguments + * @var string + */ + public static $keyINameList = "iNameList"; + /** * max number of pid for each query * @var int @@ -48,14 +66,22 @@ class PisApi extends Api { * @return query result as xml */ public function sendPisQuery($queryArgs) { - $pidList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs); + $pidList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs[self::$keyPidList]); + + if (array_key_exists(self::$keyINameList, $queryArgs)) { + $iNameList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs[self::$keyINameList]); + } else { + $iNameList = array(); + } + if (count($pidList) < self::$maxPid) { - $result = $this->sqlManager->sendPisQuery($pidList); - + $result = $this->sqlManager->sendPisQuery($pidList, $iNameList); + return $this->serialManager->arrayToPis($result); } return NULL; } + } ?> diff --git a/geoapi/database/PisSqlManager.php b/geoapi/database/PisSqlManager.php index 9f7d3f5..0744bc1 100644 --- a/geoapi/database/PisSqlManager.php +++ b/geoapi/database/PisSqlManager.php @@ -3,7 +3,7 @@ namespace database; include_once "../../global.inc.php"; -include_once PATH_UTILITTY . "/StringManager.php"; +include_once PATH_UTILITTY . "/ArrayManager.php"; require_once PATH_DATABASE . "/SqlManager.php"; /** @@ -50,6 +50,12 @@ class PisSqlManager extends SQLManager { */ private static $pidTerm = "pid = "; + /** + * String for the iName part of the query + * @var string + */ + private static $iNameTerm = "iName = "; + /** * Default-Constructor */ @@ -69,19 +75,31 @@ class PisSqlManager extends SQLManager { * @param array $queryArgs * @return array [num][assoc] */ - public function sendPisQuery($queryArgs) { + public function sendPisQuery($pidList, $iNameList) { // build query string $query = self::$selectTerm; - if (\utiliy\ArrayManager::validIntList($queryArgs)) { - $query .= \utiliy\ArrayManager::toSqlWhereString($queryArgs, self::$orTerm, self::$pidTerm) . self::$orderByTerm; + if (\utiliy\ArrayManager::validIntList($pidList)) { + $query .= self::$openBracket; + $query .= \utiliy\ArrayManager::toSqlWhereString($pidList, self::$orTerm, self::$pidTerm); + $query .= self::$closeBracket; } else { return null; } + + if (count($iNameList) > 0 && \utiliy\ArrayManager::validAlphaNumList($iNameList)) { + $query .= self::$andTerm; + $query .= self::$openBracket; + $query .= \utiliy\ArrayManager::toSqlWhereString($iNameList, self::$orTerm, self::$iNameTerm); + $query .= self::$closeBracket; + } + + $query .= self::$orderByTerm; // send query return $this->query($query); } + } ?> diff --git a/geoapi/database/SqlManager.php b/geoapi/database/SqlManager.php index ddaec35..9119624 100644 --- a/geoapi/database/SqlManager.php +++ b/geoapi/database/SqlManager.php @@ -60,6 +60,18 @@ abstract class SqlManager { */ protected static $quoteTerm = "\""; + /** + * String for open Bracket in a query + * @var string + */ + protected static $openBracket = "("; + + /** + * String for close Bracket in a query + * @var string + */ + protected static $closeBracket = ")"; + /** * Default-Constructor */ @@ -67,7 +79,9 @@ abstract class SqlManager { $this->serverAddress = \config\DBConfig::$sqlServer; $this->dbName = \config\DBConfig::$sqlDBName; $this->userName = \config\DBConfig::$sqlDBUser; - $this->userPw = \config\DBConfig::$sqlDBUserPW; + $this->userPw = \config\DBConfig::$sqlDBUserPW + + ; } /** @@ -82,18 +96,20 @@ abstract class SqlManager { unset($this->serverAddress); unset($this->dbName); unset($this->userName); - unset($this->userPW); + unset($this->userPW + + ); } /** * Method setup the connection to the Database */ public function connect() { - $this->link = mysql_connect($this->serverAddress, $this->userName, $this->userPw); + $this->link = mysql_connect($this->serverAddress , $this->userName , $this->userPw); if (!$this->link) { exit("No Connection: " . mysql_error()); } - $selected = mysql_select_db($this->dbName, $this->link); + $selected = mysql_select_db($this->dbName , $this->link); if (!$selected) { exit("No DB: " . mysql_error()); } @@ -103,7 +119,9 @@ abstract class SqlManager { * Method close the connection */ public function closeConnection() { - if ($this->link) { + if ( + + $this->link) { mysql_close($this->link); unset($this->link); $this->link = null; @@ -113,20 +131,23 @@ abstract class SqlManager { /** * Method send a query to the Datebase and return the result * @param string $query + + * @return result[num][assoc] */ protected function query($query) { // send error - $mysqlResult = mysql_query($query, $this->link); + $mysqlResult = mysql_query($query, $this->link ); if (!$mysqlResult) { + // echo $query; exit("Query error: " . mysql_error()); } // fetch result $rowNums = mysql_num_rows($mysqlResult); $result = array(); - for ($i = 0; $i < $rowNums; $i++) { + for ($i = 0; $i < $rowNums; $i++) { $row = mysql_fetch_assoc($mysqlResult); $result[$i] = $row; } diff --git a/geoapi/service/pis/index.php b/geoapi/service/pis/index.php index bd7d7bc..d9e3e17 100644 --- a/geoapi/service/pis/index.php +++ b/geoapi/service/pis/index.php @@ -2,6 +2,7 @@ include_once "../../global.inc.php"; require_once PATH_API . "/PisApi.php"; +include_once PATH_UTILITTY . "/ArrayManager.php"; // get reguest header $headers = apache_request_headers(); @@ -9,8 +10,17 @@ $headers = apache_request_headers(); $app = new \api\PisApi($headers); // HTTP-Get-Method +$app->get(\api\PisApi::$routeParameterPids . \api\PisApi::$routeParameterINames, function ($pid, $iNames = array()) use ($app) { + $queryArgs = array(); + $queryArgs[\api\PisApi::$keyPidList] = $pid; + $queryArgs[\api\PisApi::$keyINameList] = $iNames; + echo $app->sendPisQuery($queryArgs); + }); + $app->get(\api\PisApi::$routeParameterPids, function ($pid) use ($app) { - echo $app->sendPisQuery($pid); + $queryArgs = array(); + $queryArgs[\api\PisApi::$keyPidList] = $pid; + echo $app->sendPisQuery($queryArgs); }); $app->run(); diff --git a/geoapi/utility/ArrayManager.php b/geoapi/utility/ArrayManager.php index dd25289..ff76b62 100644 --- a/geoapi/utility/ArrayManager.php +++ b/geoapi/utility/ArrayManager.php @@ -34,7 +34,7 @@ class ArrayManager { public static function toSqlWhereString($array, $operator = "", $fieldname = "") { $arrayStr = StringManager::$emptyString; foreach ($array as $value) { - $arrayStr .= $fieldname . $value . $operator; + $arrayStr .= $fieldname . StringManager::$quotes . $value . StringManager::$quotes . $operator; } $result = substr($arrayStr, 0, strlen($arrayStr) - strlen($operator)); return $result; @@ -55,6 +55,21 @@ class ArrayManager { return TRUE; } + /** + * Method check if all items of the array are only digits and < PHP_INT_MAX + * @param array $poly + * @return boolean + */ + public static function validAlphaNumList($list) { + foreach ($list as $value) { + + if (!ctype_alnum($value) || !\utiliy\StringManager::validSQLString($value)) { + return FALSE; + } + } + return TRUE; + } + } ?> diff --git a/geoapi/utility/StringManager.php b/geoapi/utility/StringManager.php index 1312e1c..a424cb8 100644 --- a/geoapi/utility/StringManager.php +++ b/geoapi/utility/StringManager.php @@ -12,10 +12,16 @@ include_once "../../global.inc.php"; class StringManager { /** - * A Constant vor an emptystring like "" + * A Constant for an emptystring like "" * @var string */ public static $emptyString = ""; + + /** + * A Constant for an quotechars like " + * @var string + */ + public static $quotes = "\""; /** * Method check if a certain string start with a certain substring diff --git a/map/btucscampus.qgs b/map/btucscampus.qgs index 9266baa..9a0a2bb 100644 --- a/map/btucscampus.qgs +++ b/map/btucscampus.qgs @@ -4,10 +4,10 @@ degrees - 14.101601 - 51.518800 - 14.676288 - 51.809110 + 14.191382 + 51.659713 + 14.478726 + 51.804868 0 @@ -49,29 +49,29 @@ - + - + - + - - - - + + + + @@ -119,7 +119,7 @@ - + name - + . - + . @@ -184,7 +184,7 @@ - + name - + . - + . @@ -251,7 +251,7 @@ - + name - + . - + . @@ -316,7 +316,7 @@ - + name - + . - + . @@ -383,7 +383,7 @@ - + name - + . - + . @@ -448,7 +448,7 @@ - + name - + . - + . @@ -515,7 +515,7 @@ - + name - + . - + . @@ -580,7 +580,7 @@ - + name - + . - + . @@ -647,7 +647,7 @@ - + name - + . - + . @@ -739,9 +739,9 @@ - + . - + . @@ -795,7 +795,7 @@ - + name - + . - + . From 2d9523c80e99bf84a590cd67f7a57753b7ec77f6 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 10 Jul 2013 12:48:18 +0200 Subject: [PATCH 3/5] finish #70 --- geoapi/api/PssApi.php | 33 +++++++++++++++++++++++++++---- geoapi/database/PssSqlManager.php | 26 +++++++++++++++++++----- geoapi/service/pss/index.php | 11 ++++++++++- 3 files changed, 60 insertions(+), 10 deletions(-) diff --git a/geoapi/api/PssApi.php b/geoapi/api/PssApi.php index a1a071c..72d5e04 100644 --- a/geoapi/api/PssApi.php +++ b/geoapi/api/PssApi.php @@ -20,6 +20,24 @@ class PssApi extends Api { * @var string */ public static $routeParameterPids = "/pid/:pid+"; + + /** + * Route string for the iNames paramter + * @var string + */ + public static $routeParameterSNames = "/sname/:sname+"; + + /** + * Keyword for pidList arguments + * @var string + */ + public static $keyPidList = "pidList"; + + /** + * Keyword for iNameList arguments + * @var string + */ + public static $keySNameList = "sNameList"; /** * max number of pid for each query @@ -49,11 +67,18 @@ class PssApi extends Api { * @return query result as xml */ public function sendPssQuery($queryArgs) { - $pidList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs); - + $pidList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs[self::$keyPidList]); + + if (array_key_exists(self::$keySNameList, $queryArgs)) { + $sNameList = \utiliy\ArrayManager::removeEmptyItmes($queryArgs[self::$keySNameList]); + } else { + $sNameList = array(); + } + if (count($pidList) < self::$maxPid) { - $result = $this->sqlManager->sendPssQuery($pidList); - return $this->serialManager->arrayTopis($result); + $result = $this->sqlManager->sendPssQuery($pidList, $sNameList); + + return $this->serialManager->arrayToPss($result); } return NULL; } diff --git a/geoapi/database/PssSqlManager.php b/geoapi/database/PssSqlManager.php index eac7745..5360547 100644 --- a/geoapi/database/PssSqlManager.php +++ b/geoapi/database/PssSqlManager.php @@ -56,6 +56,12 @@ class PssSqlManager extends SQLManager { */ private static $pidTerm = "pid = "; + /** + * String for the iName part of the query + * @var string + */ + private static $sNameTerm = "sName = "; + /** * Default-Constructor */ @@ -75,16 +81,26 @@ class PssSqlManager extends SQLManager { * @param array $queryArgs * @return array [num][assoc] */ - public function sendPssQuery($queryArgs) { + public function sendPssQuery($pidList, $sNameList) { // build query string $query = self::$selectTerm; - - if (\utiliy\ArrayManager::validIntList($queryArgs)) { - $query .= \utiliy\ArrayManager::toSqlWhereString($queryArgs, self::$orTerm, self::$pidTerm) . self::$orderByTerm; + if (\utiliy\ArrayManager::validIntList($pidList)) { + $query .= self::$openBracket; + $query .= \utiliy\ArrayManager::toSqlWhereString($pidList, self::$orTerm, self::$pidTerm); + $query .= self::$closeBracket; } else { return null; - }; + } + + if (count($sNameList) > 0 && \utiliy\ArrayManager::validAlphaNumList($sNameList)) { + $query .= self::$andTerm; + $query .= self::$openBracket; + $query .= \utiliy\ArrayManager::toSqlWhereString($sNameList, self::$orTerm, self::$sNameTerm); + $query .= self::$closeBracket; + } + + $query .= self::$orderByTerm; // send query return $this->query($query); diff --git a/geoapi/service/pss/index.php b/geoapi/service/pss/index.php index c6e55cc..9368884 100644 --- a/geoapi/service/pss/index.php +++ b/geoapi/service/pss/index.php @@ -9,8 +9,17 @@ $headers = apache_request_headers(); $app = new \api\PssApi($headers); // HTTP-Get-Method +$app->get(\api\PssApi::$routeParameterPids . \api\PssApi::$routeParameterSNames, function ($pid, $sNames = array()) use ($app) { + $queryArgs = array(); + $queryArgs[\api\PssApi::$keyPidList] = $pid; + $queryArgs[\api\PssApi::$keySNameList] = $sNames; + echo $app->sendPssQuery($queryArgs); + }); + $app->get(\api\PssApi::$routeParameterPids, function ($pid) use ($app) { - echo $app->sendPssQuery($pid); + $queryArgs = array(); + $queryArgs[\api\PssApi::$keyPidList] = $pid; + echo $app->sendPssQuery($queryArgs); }); $app->run(); From a9d5edde37c64f4a69d6b7f140714c28bd86671a Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 10 Jul 2013 13:24:07 +0200 Subject: [PATCH 4/5] finish #102 --- geoapi/api/SpsApi.php | 38 ++++++++++++++++++++++++++++--- geoapi/database/SpsSqlManager.php | 2 +- geoapi/service/sps/index.php | 28 +++++++++-------------- 3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/geoapi/api/SpsApi.php b/geoapi/api/SpsApi.php index c58e359..fdc079b 100644 --- a/geoapi/api/SpsApi.php +++ b/geoapi/api/SpsApi.php @@ -23,7 +23,12 @@ class SpsApi extends Api { * Route string for the domain paramter * @var string */ - public static $routeParameterDomain = "/domain/:domain"; + public static $routeParameterDomain = "(/domain/:domain)"; + /** + * Route string for the range paramter + * @var string + */ + public static $routeParameterRange = "(/range/:range)"; /** * Route string for the Longitude paramter @@ -67,6 +72,12 @@ class SpsApi extends Api { */ public static $keyLat = "latitude"; + /** + * Keyword for range arguments + * @var string + */ + public static $keyRange = "range"; + /* * Varible for the range of the searchpolygon * @var float @@ -141,8 +152,8 @@ class SpsApi extends Api { * @return querry result as xml */ public function sendSpsCoordinateQuery($queryArgs) { - - // check arguments of the query + + // check arguments of the query if (!array_key_exists(self::$keyLong, $queryArgs) || !array_key_exists(self::$keyLat, $queryArgs)) { return null; } @@ -154,6 +165,14 @@ class SpsApi extends Api { } // 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 @@ -161,6 +180,19 @@ class SpsApi extends Api { 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 diff --git a/geoapi/database/SpsSqlManager.php b/geoapi/database/SpsSqlManager.php index 38f64a1..c0dd833 100644 --- a/geoapi/database/SpsSqlManager.php +++ b/geoapi/database/SpsSqlManager.php @@ -122,7 +122,7 @@ class SpsSqlManager extends SQLManager { // build query string $query = self::$selectTerm; if ($this->validAliasString($alias)) { - $query .= self::$aliasTerm . self::$quoteTerm . $alias . self::$quoteTerm . self::$addDomainTerm($domain); + $query .= self::$aliasTerm . self::$quoteTerm . $alias . self::$quoteTerm . $this->addDomainTerm($domain); } else { return null; } diff --git a/geoapi/service/sps/index.php b/geoapi/service/sps/index.php index 173a1b1..b1fce30 100644 --- a/geoapi/service/sps/index.php +++ b/geoapi/service/sps/index.php @@ -10,31 +10,25 @@ $headers = apache_request_headers(); $app = new \api\SpsApi($headers); // HTTP-Get-Methods -$app->get(\api\SpsApi::$routeParameterAlias, function ($alias) use ($app) { +$app->get(\api\SpsApi::$routeParameterAlias . \api\SpsApi::$routeParameterDomain, function ($alias, $domain = -1) use ($app) { $args = array(); $args[\api\SpsApi::$keyAlias] = $alias; + if ($domain != -1) { + $args[\api\SpsApi::$keyDomain] = $domain; + } echo $app->sendSpsAliasQuery($args); }); -$app->get(\api\SpsApi::$routeParameterAlias . \api\SpsApi::$routeParameterDomain, function ($alias, $domain) use ($app) { - $args = array(); - $args[\api\SpsApi::$keyAlias] = $alias; - $args[\api\SpsApi::$keyDomain] = $domain; - echo $app->sendSpsAliasQuery($args); - }); - -$app->get(\api\SpsApi::$routeParameterLatitude . \api\SpsApi::$routeParameterLongitude, function ($latitude, $longitude) use ($app) { +$app->get(\api\SpsApi::$routeParameterLatitude . \api\SpsApi::$routeParameterLongitude . \api\SpsApi::$routeParameterDomain . \api\SpsApi ::$routeParameterRange, function ($latitude, $longitude, $domain = -1, $range = -1) use ($app) { $args = array(); $args[\api\SpsApi::$keyLong] = $longitude; $args[\api\SpsApi::$keyLat] = $latitude; - echo ($app->sendSpsCoordinateQuery($args)); - }); - -$app->get(\api\SpsApi::$routeParameterLatitude . \api\SpsApi::$routeParameterLongitude . \api\SpsApi::$routeParameterDomain, function ($latitude, $longitude, $domain) use ($app) { - $args = array(); - $args[\api\SpsApi::$keyLong] = $longitude; - $args[\api\SpsApi::$keyLat] = $latitude; - $args[\api\SpsApi::$keyDomain] = $domain; + if ($domain != -1) { + $args[\api\SpsApi::$keyDomain] = $domain; + } + if ($range != -1) { + $args[\api\SpsApi::$keyRange] = $range; + } echo ($app->sendSpsCoordinateQuery($args)); }); From d00187bdc2caf7d215c20f6f71334794427271c8 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 10 Jul 2013 13:50:09 +0200 Subject: [PATCH 5/5] finish #53 --- geoapi/database/SpsSqlManager.php | 13 +++++++++---- geoapi/utility/JsonManager.php | 9 ++++++++- geoapi/utility/XmlManager.php | 19 +++++++++++++------ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/geoapi/database/SpsSqlManager.php b/geoapi/database/SpsSqlManager.php index c0dd833..e9070db 100644 --- a/geoapi/database/SpsSqlManager.php +++ b/geoapi/database/SpsSqlManager.php @@ -26,11 +26,17 @@ class SpsSqlManager extends SQLManager { */ public static $parentId = "parent"; + /** + * Fieldname of the refpoint + * @var string + */ + public static $refpoint = "refpoint"; + /** * String for the select part of the query * @var string */ - private static $selectTerm = "SELECT DISTINCT id, parent FROM sps WHERE "; + private static $selectTerm = "SELECT DISTINCT id, parent, refpoint FROM sps WHERE "; /** * String for the alias part of the query @@ -122,7 +128,7 @@ class SpsSqlManager extends SQLManager { // build query string $query = self::$selectTerm; if ($this->validAliasString($alias)) { - $query .= self::$aliasTerm . self::$quoteTerm . $alias . self::$quoteTerm . $this->addDomainTerm($domain); + $query .= self::$aliasTerm . self::$quoteTerm . $alias . self::$quoteTerm . $this->addDomainTerm($domain); } else { return null; } @@ -209,8 +215,7 @@ class SpsSqlManager extends SQLManager { * @return boolean */ private function validPolyString($poly) { - if (\utiliy\StringManager::validSQLString($poly) && \utiliy\StringManager::startsWith($poly, self::$polyStartStr) - && \utiliy\StringManager::endsWith($poly, self::$polyEndStr)) { + if (\utiliy\StringManager::validSQLString($poly) && \utiliy\StringManager::startsWith($poly, self::$polyStartStr) && \utiliy\StringManager::endsWith($poly, self::$polyEndStr)) { return TRUE; } return FALSE; diff --git a/geoapi/utility/JsonManager.php b/geoapi/utility/JsonManager.php index 7439786..eca9aba 100644 --- a/geoapi/utility/JsonManager.php +++ b/geoapi/utility/JsonManager.php @@ -54,6 +54,12 @@ class JsonManager implements SerialManager { */ private static $parentIdName = "parentId"; + /** + * Name for the refpoint item + * @var string + */ + private static $refpointName = "refpoint"; + /** * Method convert an array to a response json for the sps service * @example [{"id":"121799787","parentId":null}] @@ -64,7 +70,8 @@ class JsonManager implements SerialManager { $places = array(); foreach ($result as $row) { $place = array(self::$placeIdName => $row[\database\SpsSqlManager::$placeId], - self::$parentIdName => $row[\database\SpsSqlManager::$parentId]); + self::$parentIdName => $row[\database\SpsSqlManager::$parentId], + self::$refpointName => $row[\database\SpsSqlManager::$refpoint]); array_push($places, $place); } return json_encode($places); diff --git a/geoapi/utility/XmlManager.php b/geoapi/utility/XmlManager.php index c4904cf..beafa12 100644 --- a/geoapi/utility/XmlManager.php +++ b/geoapi/utility/XmlManager.php @@ -10,7 +10,7 @@ require_once PATH_UTILITTY . "/SerialManager.php"; * @author stubbfel * @since 25.06.2013 */ -class XmlManager implements SerialManager{ +class XmlManager implements SerialManager { /** * a default xml document @@ -72,6 +72,12 @@ class XmlManager implements SerialManager{ */ private static $parentIdAttrName = "parentId"; + /** + * Name for the refpoint attribute + * @var string + */ + private static $refpointAttrName = "refpoint"; + /** * Method convert an array to a response xml for the sps service * @@ -86,6 +92,7 @@ class XmlManager implements SerialManager{ $place = $xml->addChild(self::$placeElementName); $place->addAttribute(self::$placeIdAttrName, $row[\database\SpsSqlManager::$placeId]); $place->addAttribute(self::$parentIdAttrName, $row[\database\SpsSqlManager::$parentId]); + $place->addAttribute(self::$refpointAttrName, $row[\database\SpsSqlManager::$refpoint]); } return $xml->asXML(); } @@ -158,15 +165,15 @@ class XmlManager implements SerialManager{ } return $xml->asXML(); } - + public function arrayToSps($result) { return self::arrayToSpsXml($result); } - - public function arrayToPis($result){ - return self::arrayToPisXml($result); + + public function arrayToPis($result) { + return self::arrayToPisXml($result); } - + public function arrayToPss($result) { return self::arrayToPssXml($result); }