Jelajahi Sumber

WfsServer Data add testOgcFilter

Piotr Labudda 10 tahun lalu
induk
melakukan
6729799244
1 mengubah file dengan 17 tambahan dan 0 penghapusan
  1. 17 0
      SE/se-lib/Api/WfsDataServer.php

+ 17 - 0
SE/se-lib/Api/WfsDataServer.php

@@ -54,6 +54,23 @@ class Api_WfsDataServer extends Api_WfsServerBase {
 		}
 	}
 
+	public function testOgcFilterAction() {
+		$type = V::get('TYPENAME', '', $_REQUEST);
+		$typeEx = explode(':', $type);
+		$maxFeatures = V::get('MAXFEATURES', '10000', $_REQUEST, 'int');// TODO: Set Deafult Limit
+		$ogcFilter = V::get('Filter', '', $_REQUEST);
+		$srsname = V::get('SRSNAME', '', $_REQUEST);// eg. EPSG:4326
+		if (count($typeEx) == 2) {
+			Lib::loadClass('ParseOgcFilter');
+			$parser = new ParseOgcFilter();
+			$parser->loadOgcFilter($ogcFilter);
+			$queryWhereBuilder = $parser->convertToSqlQueryWhereBuilder();
+			echo $queryWhereBuilder->getQueryWhere('t');
+		} else {
+			throw new HttpException("Wrong param TYPENAME", 400);
+		}
+	}
+
 	public function getFeatures($nsPrefix, $type, $maxFeatures, $srsname, $ogcFilter = '') {
 		$DBG = (V::get('DBG_GEO', '', $_GET) > 0);// TODO: Profiler
 		$typeName = "{$nsPrefix}:{$type}";