Просмотр исходного кода

use AclQueryFilter in wfs qgis, added numberMatched and numberReturned

Piotr Labudda 9 лет назад
Родитель
Сommit
d340096362
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      SE/se-lib/Api/WfsQgisServer.php

+ 5 - 1
SE/se-lib/Api/WfsQgisServer.php

@@ -102,7 +102,8 @@ OGC_FILTER;
 if($DBG){echo 'args:';print_r($args);echo "\n";}
 if($DBG){echo 'getItems(params) \$params:';print_r($searchParams);echo "\n";}
 		$this->DBG("getItems:" . json_encode($searchParams), __LINE__, __FUNCTION__, __CLASS__);
-		$items = $acl->getItems($searchParams);
+		$queryFeatures = $acl->buildQuery($searchParams);
+		$items = $queryFeatures->getItems();
 		$this->DBG("items(" . count($items) . ")", __LINE__, __FUNCTION__, __CLASS__);
 
 		header('Content-type: application/xml; charset=utf-8');
@@ -124,6 +125,9 @@ if($DBG){echo 'getItems(params) \$params:';print_r($searchParams);echo "\n";}
 		$xmlWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
 		$xmlWriter->writeAttribute("xmlns:{$wfsNs}", $wfsNsUri);
 		$xmlWriter->writeAttribute('xsi:schemaLocation', "{$wfsNsUri} {$featureTypeUri}");
+		$xmlWriter->writeAttribute('numberMatched', 'unknown'); // TODO: return total items if simple query (without prefix, small total number, maxFeatures set, etc.)
+		// NOTE: for client: if numberMatched == 'unknown' then request with resultType = 'hits'
+		$xmlWriter->writeAttribute('numberReturned', count($items));
 
 if($DBG){echo '(geomFld: '.$geomFld.'):';print_r($acl->getFieldType($geomFld));echo "\n";}
 		$dbgLoop = 0;