/**
* 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);
MpUtils::geoStampCRS($feat);
return $feat;