コード例 #1
0
 public function types()
 {
     App::import('model', 'MPCache');
     $MPCache = new MPCache();
     $data = $MPCache->getDataSource()->get('prawo/stats.json');
     return json_decode($data, true);
 }
コード例 #2
0
<?php

$posiedzenie = $this->DB->selectAssoc("SELECT `pl_gminy_krakow_posiedzenia`.`id`, `pl_gminy_krakow_posiedzenia`.`date`, `pl_gminy_krakow_posiedzenia`.`numer`, `pl_gminy_krakow_sesje`.`numer` as 'sesja_numer' FROM `pl_gminy_krakow_posiedzenia` JOIN `pl_gminy_krakow_sesje` ON `pl_gminy_krakow_posiedzenia`.`sesja_id` = `pl_gminy_krakow_sesje`.`id` ORDER BY `pl_gminy_krakow_posiedzenia`.`date` DESC LIMIT 1");
if ($posiedzenie) {
    App::import('model', 'MPCache');
    $MPCache = new MPCache();
    $terms = $MPCache->getDataSource()->get('stats/krakow_posiedzenia/terms/' . $posiedzenie['id'] . '*/*');
    $terms = json_decode($terms, true);
    return array('data' => $posiedzenie, 'terms' => $terms);
} else {
    return false;
}
コード例 #3
0
<?php

/**
* Zwraca obiekt GeoJson Feature zawierający obszar województwa (cache w redis) wraz z dynamicznie dociąganymi właściwościami
*/
App::import('Vendor', 'geoPHP', array('file' => '/phayes/geophp/geoPHP.inc'));
App::import('model', 'MPCache');
// Try cache
$cacheKey = 'geojson/wojewodztwo/' . $id . ($simplify ? 's' : '');
$cache = new MPCache();
$cacheClient = $cache->getDataSource()->getRedisClient();
if ($cacheClient->exists($cacheKey)) {
    $geojson = json_decode($cache->get($cacheKey));
} else {
    // Build geojson
    $wkt = $this->DB->selectAssoc("SELECT AsWKT(spat) AS wkt FROM wojewodztwa WHERE id = {$id}");
    if (!$wkt['wkt']) {
        return null;
    }
    $spat = geoPHP::load($wkt['wkt'], 'wkt');
    if ($simplify) {
        // w tej postaci bedzie to nierównomiernie robił w pioniie i poziomie ze względu na CRS (ale roznica wymiarow tylko 2x)
        $spat = $spat->simplify(0.005, true);
    }
    $geojsonConverter = new GeoJSON();
    $geojson = $geojsonConverter->write($spat, true);
    MpUtils::transposeCoordinates($geojson);
    // Put in cache
    $cacheClient->set($cacheKey, json_encode($geojson));
}
$feat = array("type" => "Feature", "id" => $this->data['_id'], "properties" => $this->data['data'], "geometry" => $geojson);
コード例 #4
0
<?php

/**
* 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;
コード例 #5
0
 public function categories()
 {
     // Try cache
     $cacheKey = 'bdl/categories';
     $cache = new MPCache();
     $cacheClient = $cache->getDataSource()->getRedisClient();
     if ($cacheClient->exists($cacheKey)) {
         $categories = json_decode($cacheClient->get($cacheKey));
     } else {
         $tree_data = ConnectionManager::getDataSource('default')->query("SELECT pg.tytul AS pg_tytul, pg.id AS pg_id, g.tytul AS g_tytul, g.id AS g_id,\n        k.w_tytul AS k_tytul, k.id AS k_id\n    FROM epf.BDL_podgrupy pg INNER JOIN BDL_grupy g ON (pg.grupa_id = g.id)\n        INNER JOIN BDL_kategorie k ON (pg.kategoria_id = k.id)\n    WHERE k.okres = 'R' AND k.deleted = '0' AND g.deleted = '0' AND pg.deleted = '0' AND pg.akcept = '1'\n    ORDER BY k_id ASC, g_id ASC, pg_tytul ASC;");
         $categories = array();
         $kategoria = null;
         $grupa = null;
         $last_kategoria = null;
         $last_grupa = null;
         foreach ($tree_data as $row) {
             // dodaj nowa kategorie
             if ($row['k']['k_id'] != $last_kategoria) {
                 $k = array('groups' => array(), 'name' => $row['k']['k_tytul']);
                 array_push($categories, $k);
                 $kategoria =& $categories[count($categories) - 1];
             }
             // dodaj nowa grupe
             if ($row['g']['g_id'] != $last_grupa) {
                 $g = array('subgroups' => array(), 'name' => $row['g']['g_tytul']);
                 array_push($kategoria['groups'], $g);
                 $grupa =& $kategoria['groups'][count($kategoria['groups']) - 1];
             }
             array_push($grupa['subgroups'], array('name' => $row['pg']['pg_tytul'], 'url' => Router::url(array('plugin' => 'Dane', 'controller' => 'Dataobjects', 'action' => 'view', 'dataset' => 'bdl_wskazniki', 'id' => $row['pg']['pg_id']), true)));
             $last_grupa = $row['g']['g_id'];
             $last_kategoria = $row['k']['k_id'];
         }
         $cacheClient->setex($cacheKey, BDL_CACHE_TTL_SEC, json_encode($categories));
     }
     $this->setSerialized('tree', $categories);
 }
コード例 #6
0
<?php

App::import('model', 'MPCache');
$MPCache = new MPCache();
$data = $MPCache->getDataSource()->get('stats/krakow_posiedzenia/terms/' . $id . '*/*');
return json_decode($data, true);
コード例 #7
0
<?php

App::import('model', 'MPCache');
$MPCache = new MPCache();
$data = $MPCache->getDataSource()->get('poslowie/stats/terms/' . $id . '*/*');
return json_decode($data, true);