/**
* Zwraca obiekt GeoJson FeatureCollection zawierający wszystkie gminy tego województwa (właściwości są keszowane także)
*/
App::import('model', 'MPCache');
App::uses('Model', 'Dane.Dataobject');
// Try cache
$cacheKey = 'geojson/agg/gminy/wojewodztwo/' . $id;
$cache = new MPCache();
$cacheClient = $cache->getDataSource()->getRedisClient();
if ($cacheClient->exists($cacheKey)) {
    return json_decode($cacheClient->get($cacheKey));
} else {
    // Build geojson feature collection
    $gminy_ids = $this->DB->selectValues("SELECT id FROM epf.pl_gminy WHERE w_id = {$id} AND akcept = '1'");
    if (!$gminy_ids) {
        throw new Exception("Nie znaleziono gmin dla w_id = {$id}");
    }
    $gminy = array();
    foreach ($gminy_ids as $gid) {
        $d = new Dataobject();
        $g = $d->getObjectLayer('gminy', $gid, 'geojson_simplified', $params = array());
        unset($g['crs']);
        $gminy[] = $g;
    }
    $featc = array("type" => "FeatureCollection", "features" => $gminy);
    MpUtils::geoStampCRS($featc);
    // Put in cache
    $cacheClient->set($cacheKey, json_encode($featc));
    return $featc;
}
/**
* Zwraca obiekt GeoJson FeatureCollection zawierający wszystkie gminy tego powiatu (właściwości są keszowane także)
*/
App::import('model', 'MPCache');
App::uses('Model', 'Dane.Dataobject');
// Try cache
$cacheKey = 'geojson/agg/gminy/powiat/' . $id;
$cache = new MPCache();
$cacheClient = $cache->getDataSource()->getRedisClient();
if ($cacheClient->exists($cacheKey)) {
    return json_decode($cacheClient->get($cacheKey));
} else {
    // Build geojson feature collection
    $gminy_ids = $this->DB->selectValues("SELECT id FROM epf.pl_gminy WHERE pl_powiat_id = {$id} AND akcept = '1'");
    if (!$gminy_ids) {
        throw new Exception("Nie znaleziono gmin dla pl_powiat_id = {$id}");
    }
    $gminy = array();
    foreach ($gminy_ids as $gid) {
        $d = new Dataobject();
        $g = $d->getObjectLayer('gminy', $gid, 'geojson', $params = array());
        unset($g['crs']);
        $gminy[] = $g;
    }
    $featc = array("type" => "FeatureCollection", "features" => $gminy);
    MpUtils::geoStampCRS($featc);
    // Put in cache
    $cacheClient->set($cacheKey, json_encode($featc));
    return $featc;
}
/**
* Zwraca obiekt GeoJson FeatureCollection zawierający wszystkie gminy tego powiatu (właściwości są keszowane także)
*/
App::import('model', 'MPCache');
App::uses('Model', 'Dane.Dataobject');
// Try cache
$cacheKey = 'geojson/agg/powiaty/wojewodztwo/' . $id;
$cache = new MPCache();
$cacheClient = $cache->getDataSource()->getRedisClient();
if ($cacheClient->exists($cacheKey)) {
    return json_decode($cacheClient->get($cacheKey));
} else {
    // Build geojson feature collection
    $powiaty_ids = $this->DB->selectValues("SELECT id FROM epf.pl_powiaty WHERE w_id = {$id} AND akcept = '1'");
    if (!$powiaty_ids) {
        throw new Exception("Nie znaleziono powiatów dla w_id = {$id}");
    }
    $powiaty = array();
    foreach ($powiaty_ids as $pid) {
        $d = new Dataobject();
        $p = $d->getObjectLayer('powiaty', $pid, 'geojson', $params = array());
        unset($p['crs']);
        $powiaty[] = $p;
    }
    $featc = array("type" => "FeatureCollection", "features" => $powiaty);
    MpUtils::geoStampCRS($featc);
    // Put in cache
    $cacheClient->set($cacheKey, json_encode($featc));
    return $featc;
}