/** * {@inheritDoc} */ public function getContextoId($espacialidade, $id) { $_id = Db::escape($id); $tab = MapaTabela::getTabela($espacialidade); $fk = MapaTabela::getChaveEstrangeira(ESP_REGIAOMETROPOLITANA, $espacialidade); $sql = sprintf("SELECT \n e.id AS id\n FROM \n estado AS e,\n %s AS t\n WHERE \n t.id=%d \n AND t.%s=e.id", $tab, $_id, $fk); $this->bd->execSql($sql); if ($row = $this->bd->proximo()) { return $row->id; } return null; }
/** * Recupera coordenadas centro da espacialidade. * * @param int $id * @param int $espacialidade * @return \CoordsEspacialidade */ public function getLatLng($id, $espacialidade) { list($lat, $lng) = MapaTabela::getLatLngFields($espacialidade); $sql = 'SELECT ' . "{$lat} AS lat, " . "{$lng} AS lng " . 'FROM ' . MapaTabela::getTabela($espacialidade) . ' ' . 'WHERE id=' . $id . ' ' . 'LIMIT 1;'; // print $sql; exit; $this->bd->execSql($sql); $obj = null; if ($row = $this->bd->proximo()) { $obj = new CoordsEspacialidade(); $obj->setLat($row->lat); $obj->setLng($row->lng); } return $obj; }
/** * Constroi sql dos IDs de espacialidades diferente. * * @param string $contexto * @param string $espacialidade * @param array $array_id Lista de IDs da espacialidade * @return array */ public function getSqlByIdEspacialidade($contexto, $espacialidade, $array_id) { $this->tabela = MapaTabela::getTabela($espacialidade); $this->foreign_key = MapaTabela::getChaveEstrangeira($contexto, $espacialidade); // país pega todos valores if ($contexto == ESP_PAIS) { $this->sql = "SELECT id FROM {$this->tabela}"; return $this->sql; } else { $_id = implode(', ', $array_id); $this->sql = "SELECT id FROM {$this->tabela} WHERE {$this->foreign_key} IN ({$_id})"; // RM verificar se está ativa if ($espacialidade == ESP_REGIAOMETROPOLITANA) { $this->sql .= " AND ativo=TRUE"; } return $this->sql; } }
/** * Formata SQL. * * @param int $contexto ID espacialidade. * @param int $espacialidade ID espacialidade. * @param int $id * @param int $indicador ID indicador. * @param int $ano ID ano. * @return string */ public function getSql($contexto, $espacialidade, $id, $indicador, $ano) { $tabela = MapaTabela::getTabela($espacialidade); $chave_estrangeira = MapaTabela::getChaveEstrangeira($espacialidade, $contexto); $valor_variavel = $tabela; // região de interesse - caso especial if ($espacialidade == ESP_REGIAODEINTERESSE) { $tabela = $this->_getSqlRegiaoDeInteresse(); $valor_variavel = 'municipio'; $chave_estrangeira = 'fk_municipio'; $id = $tabela; } // tabela mun = municipio if (strtolower($valor_variavel) == 'municipio') { $valor_variavel = 'mun'; } $sql = $this->_toSql($tabela, $valor_variavel, $chave_estrangeira, $indicador, $ano); return static::prepareSql($sql, $id); }