/** * Geef alle terreinobjecten die horen tot een huisnummer. * * Opgelet! In tegenstelling tot de Crab1Gateway geeft deze functie alleen maar de identificatorTerreinobject en de aardTerreinobjectCode terug. * <code> * //Crab1 * $terreinObjecten = $crab->listTerreinobjectenByHuisnummerId ( 1,1); * foreach ( $terreinObjecten as $terreinObject) { * echo "X: " . $terreinObject['centerX'] . " ,Y: " . $terreinObject['centerY']; * } * //Crab2 * $terreinObjecten = $crab->listTerreinobjectenByHuisnummerId ( 1,1 ); * foreach ( $terreinObjecten as $terreinObject) { * $infoTerreinObject = $crab->getTerreinobjectByIdentificatorTerreinobject ( $terreinObject['identificatorTerreinobject']); * echo "X: " . $infoTerreinObject['centerX'] . " ,Y: " . $infoTerreinObject['centerY']; * } * </code> * @param integer huisnummerId * @param integer sorteerVeld Zie de KVDgis_Crab2Gateway::TERREIN_SORT_ constanten * @return array Een associatieve array met de volgende sleutels: * <ul> * <li>identificatorTerreinobject: De identificator van het terreinobject.</li> * <li>aardTerreinobjectCode: De aard van het terreinobject.</li> * </ul> * @throws InvalidArgumentException Indien er op een ongeldig sorteerVeld wordt gesorteerd. */ public function listTerreinobjectenByHuisnummerId($huisnummerId, $sorteerVeld = self::TERREIN_SORT_ID) { if ($sorteerVeld < 1 || $sorteerVeld > 2) { throw new InvalidArgumentException("De parameter sorteerVeld van de functie listTerreinobjectenByHuisnummerId moet tussen 1 en 2 liggen!"); } $params = new StdClass(); $functionParameters = func_get_args(); $result = $this->_cache->cacheGet($this->getCacheName(__FUNCTION__), $functionParameters); if ($result != false) { return unserialize($result); } $params = new StdClass(); $params->HuisnummerId = (int) $huisnummerId; $params->SorteerVeld = (int) $sorteerVeld; $paramsWrapper = new SoapParam($params, "ListTerreinObjectenByHuisnummerId"); try { $result = $this->_client->ListTerreinobjectenByHuisnummerId($paramsWrapper); } catch (Exception $e) { throw new RuntimeException('Kan de lijst met terreinobjecten niet laden wegens: ' . $e->getMessage()); } $terreinobjecten = array(); if (isset($result->ListTerreinobjectenByHuisnummerIdResult->TerreinobjectItem)) { foreach ($result->ListTerreinobjectenByHuisnummerIdResult->TerreinobjectItem as $terreinobject) { $terreinobjectArray = array(); $terreinobjectArray['identificatorTerreinobject'] = $terreinobject->IdentificatorTerreinobject; $terreinobjectArray['aardTerreinobjectCode'] = (int) $terreinobject->AardTerreinobject; $terreinobjecten[] = $terreinobjectArray; } } $this->_cache->cachePut($this->getCacheName(__FUNCTION__), $functionParameters, serialize($terreinobjecten)); return $terreinobjecten; }