O meu problema era posicionar o rodapé perto da borda inferior e o cabeçalho perto da borda superior.
Com o código abaixo foi possível fazer isso.
#rodape-tema {
position: absolute;
bottom: 0;
height: 80px;
line-height: 80px;
text-align: center;
width: 100%;
}
#banner_institucional {
position: absolute;
top: 0;
width: 100%;
}
Esta página contem informações úteis para o dia a dia de meu trabalho
sexta-feira, 9 de maio de 2014
quinta-feira, 10 de abril de 2014
Instalação POSTGRES/POSTGIS em FEDORA/RED HAT
Para verificar a versão do REDHAT
cat /etc/redhat-release
Ajustando o YUM para acessar os repositórios através do PROXY
Para permitir todas operações do
Configurando o repositório YUM
Localize em sua distribuição Linux o arquivo com a extensão .repo, localizado em:
Para listar os pacotes (packages) disponíveis
sudo yum install http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-1.0.1e-
15.el6.x86_64.rpm
service postgresql-9.3 initdb
chkconfig postgresql-9.3 on
Para ajustes nas permissões de acesso
vim /var/lib/pgsql/9.3/data/postgres.conf
Fonte: https://wiki.postgresql.org/wiki/YUM_Installation
cd libxml2-2.9.0
./configure --prefix=/usr --disable-static --with-history && make
make check
make install
cd geos-3.4.2
./configure
make
make check
make install
cd proj-4.8.0
./configure
make
make check
make install
cd gdal-1.10.0
./configure
make
make install
export PATH=$PATH:/usr/pgsql-9.3/bin/
./configure --with-geosconfig=/home/local/MDS/caio.nakashima/postgres/geos-3.4.2/tools/geos-config --with-gdalconfig=/usr/local/bin/gdal-config
cat /etc/redhat-release
Ajustando o YUM para acessar os repositórios através do PROXY
Para permitir todas operações do
yum usando um servidor proxy, especifique os detalhes do servidor proxy em /etc/yum.conf. A configuração proxy
deve especificar o servidor proxy como uma URL completa, incluindo o
número da porta TCP. Se o seu servidor proxy necessita de usuário e
senha, especifique adicionando as configurações proxy_username e proxy_password.# The proxy server - proxy server:port numberproxy=http://mycache.mydomain.com:3128# The account details for yum connectionsproxy_username=yum-userproxy_password=qwerty
Fonte:http://docs.fedoraproject.org/pt-BR/Fedora_Core/5/html/Software_Management_Guide/sn-yum-proxy-server.html
Configurando o repositório YUM
Localize em sua distribuição Linux o arquivo com a extensão .repo, localizado em:
- Fedora: /etc/yum.repos.d/fedora.repo and /etc/yum.repos.d/fedora-updates.repo, seção [fedora]
- CentOS: /etc/yum.repos.d/CentOS-Base.repo, seção [base] and [updates] sections
- Red Hat: /etc/yum/pluginconf.d/rhnplugin.conf seção[main]
exclude=postgresql*
Para listar os pacotes (packages) disponíveis
yum list postgres*
yum remove libaep.so
15.el6.x86_64.rpm
Para instalar o servidor POSTGRESQL
yum install postgresql93-server.x86_64
ou
yum install postgresql93-server
Para criar e inicializar um database
service postgresql-9.3 initdb
Para ajustes nas permissões de acesso
vim /var/lib/pgsql/9.3/data/pg_hba.conf
Para instalar os compiladores necessários
yum install gcc gcc-c++Para instalar o LIBXML2
tar vxzf libxml2-2.9.0.tar.gzcd libxml2-2.9.0
./configure --prefix=/usr --disable-static --with-history && make
make check
make install
Para instalar o GEOS
tar -xvjf geos-3.4.2.tar.bz2cd geos-3.4.2
./configure
make
make check
make install
Para instalar o PROJ.4
tar -xzvf proj-4.8.0.tar.gzcd proj-4.8.0
./configure
make
make check
make install
Para instalar o GDAL (a última versão não funcionou - gdal-1.10.1)
tar -xvzf gdal-1.10.0a.tar.gzcd gdal-1.10.0
./configure
make
make install
Na pasta postgis-2.1.2
export PATH=$PATH:/usr/pgsql-9.3/bin/
./configure --with-geosconfig=/home/local/MDS/caio.nakashima/postgres/geos-3.4.2/tools/geos-config --with-gdalconfig=/usr/local/bin/gdal-config
make
make install
Testando o Postgis
com usuário postgres, criar um database
createdb mapas
createlang plpgsql mapas
procurar pelo arquivo postgis.sql
find / -name postgis.sql
/usr/pgsql-9.3/share/contrib/postgis-2.1/postgis.sql
Para carregar as definições dos objetos e funções do POSTGIS no banco de dados, executa-se o comando abaixo
psql -d mapas -f postgis.sql
Para completar ajustar os identificadores do sistema de coordenadas EPSG. Carrega-se o arquivo spatial_ref_sys.sql para popular a tabela spatial_ref_sys.
psql -d mapas -f spatial_ref_sys.sql
Para restaurar cópias antigas de versões anteriores
psql -d mapas -f legacy.sql
Para carga de shape files
/usr/pgsql-9.3/bin/shp2pgsql -c -W LATIN1 53UFE250GC_SIR.shp mapas.shp_uf | psql -d mapas
/usr/pgsql-9.3/bin/shp2pgsql -a -W LATIN1 53MUE250GC_SIR. mapas.shp_mu | psql -d mapas
/usr/pgsql-9.3/bin/shp2pgsql -a -W LATIN1 53MUE250GC_SIR. mapas.shp_mu | psql -d mapas
terça-feira, 10 de setembro de 2013
Verificar se um ponto esta contido em um poligono
Esta cada vez mais recorrente a pergunta:
"Esta coordenada (latitude, longitude) de um equipamento esta dentro do município?"
A consulta baixo permite responder esta pergunta.
select ST_Contains(the_geom, ST_Point(longitude::float,latitude::float) ), uf, nome
from mapas.shp_munic
order by uf, nome
Com a base do IBGE de municípios, pode-se pegar as informações de (latitude, longitude) e executar a pesquisa.
"Esta coordenada (latitude, longitude) de um equipamento esta dentro do município?"
A consulta baixo permite responder esta pergunta.
select ST_Contains(the_geom, ST_Point(longitude::float,latitude::float) ), uf, nome
from mapas.shp_munic
order by uf, nome
Com a base do IBGE de municípios, pode-se pegar as informações de (latitude, longitude) e executar a pesquisa.
terça-feira, 23 de julho de 2013
Copia de tabelas em servidores diferentes com PLPGSQL
Um desafio que apareceu foi fazer cópia de 54 tabelas de um servidor Postgres de um servidor para outro. Estas tabelas são formadas por 2 grupos de 27 tabelas referentes à 27 unidades da federação. O primeiro caminho que segui para solução do problema, foi fazer uma cópia de segurança, vulgo BACKUP, e restaurar em outro servidor. O problema apareceu quando percebi que o arquivo resultante da cópia era muito grande e o processo de restauração levaria mais tempo que a cópia.
Assim passei para outra solução, criar um script para fazer a cópia da tabela. Para isso utilizei o dblink e a linguagem plpgsql.
O código para criar a função foi:
create or replace function copia_pessoa(esquema varchar, uf varchar) returns text as $$
declare
tabela1 varchar;
begin
tabela1 := 'tab_cad_'|| esquema || '.tb_pessoa_uf_' || uf;
RAISE NOTICE 'Tabela destino %' ,tabela1;
execute 'create table '|| tabela1 ||' as
select * from dblink
(''port=porta dbname=database host=iphost user=user password=senha'',
''select * from ' || tabela1 || ' '') as t1
(
cd_ibge character varying(13),
cod_familiar_fam character varying(11),
num_membro_fmla character varying(11),
marc_pbf numeric(8,0),
marc_bsp numeric(8,0)
)' ;
execute ' CREATE INDEX idx_cd_ibge_uf'||uf||'_pess_'||esquema||' ON ' || tabela1 || ' USING btree (cd_ibge)';
execute ' CREATE INDEX idx_cod_familiar_fam_uf' ||uf|| '_pess_' ||esquema||' ON '|| tabela1 ||' USING btree (cod_familiar_fam)';
return 'Sucesso ' || tabela1;
end;
$$ language plpgsql;
Destaco que neste código pude fazer com que o nome da tabela é uma variável conforme o parâmetro passado.
tabela1 := 'tab_cad_'|| esquema || '.tb_pessoa_uf_' || uf;
O nome da tabela é composto pelo nome do esquema e código do ibge da UF.
O comando EXECUTE permite que o comando SQL seja executado com parâmetros, neste caso o nome da tabela.
execute 'create table '|| tabela1 ||' as
select * from dblink ...';
Para utilizar a função pode-se utilizar o comando abaixo, onde o primeiro parâmetro é o nome do esquema e o segundo parâmetro é o código ibge da UF.
select copia_pessoa('nome_do_esquema','12')
Uma outra forma de utilização foi:
select copia_pessoa('18052013',ibge::varchar) from estados
onde na tabela estados se obtém os códigos do IBGE dos estado no campo ibge.
create table estados (ibge integer, uf char(2));
insert into estados (ibge, uf) values (11,'RO');
insert into estados (ibge, uf) values (12,'AC');
insert into estados (ibge, uf) values (13,'AM');
insert into estados (ibge, uf) values (14,'RR');
insert into estados (ibge, uf) values (16,'AP');
insert into estados (ibge, uf) values (17,'TO');
insert into estados (ibge, uf) values (22,'PI');
insert into estados (ibge, uf) values (23,'CE');
insert into estados (ibge, uf) values (24,'RN');
insert into estados (ibge, uf) values (25,'PB');
insert into estados (ibge, uf) values (27,'AL');
insert into estados (ibge, uf) values (28,'SE');
insert into estados (ibge, uf) values (29,'BA');
insert into estados (ibge, uf) values (31,'MG');
insert into estados (ibge, uf) values (41,'PR');
insert into estados (ibge, uf) values (43,'RS');
insert into estados (ibge, uf) values (50,'MS');
insert into estados (ibge, uf) values (51,'MT');
insert into estados (ibge, uf) values (52,'GO');
insert into estados (ibge, uf) values (53,'DF');
insert into estados (ibge, uf) values (15,'PA');
insert into estados (ibge, uf) values (21,'MA');
insert into estados (ibge, uf) values (33,'RJ');
insert into estados (ibge, uf) values (35,'SP');
insert into estados (ibge, uf) values (42,'SC');
insert into estados (ibge, uf) values (26,'PE');
insert into estados (ibge, uf) values (32,'ES');
O código para criar a função foi:
create or replace function copia_pessoa(esquema varchar, uf varchar) returns text as $$
declare
tabela1 varchar;
begin
tabela1 := 'tab_cad_'|| esquema || '.tb_pessoa_uf_' || uf;
RAISE NOTICE 'Tabela destino %' ,tabela1;
execute 'create table '|| tabela1 ||' as
select * from dblink
(''port=porta dbname=database host=iphost user=user password=senha'',
''select * from ' || tabela1 || ' '') as t1
(
cd_ibge character varying(13),
cod_familiar_fam character varying(11),
num_membro_fmla character varying(11),
marc_pbf numeric(8,0),
marc_bsp numeric(8,0)
)' ;
execute ' CREATE INDEX idx_cd_ibge_uf'||uf||'_pess_'||esquema||' ON ' || tabela1 || ' USING btree (cd_ibge)';
execute ' CREATE INDEX idx_cod_familiar_fam_uf' ||uf|| '_pess_' ||esquema||' ON '|| tabela1 ||' USING btree (cod_familiar_fam)';
return 'Sucesso ' || tabela1;
end;
$$ language plpgsql;
Destaco que neste código pude fazer com que o nome da tabela é uma variável conforme o parâmetro passado.
tabela1 := 'tab_cad_'|| esquema || '.tb_pessoa_uf_' || uf;
O nome da tabela é composto pelo nome do esquema e código do ibge da UF.
O comando EXECUTE permite que o comando SQL seja executado com parâmetros, neste caso o nome da tabela.
execute 'create table '|| tabela1 ||' as
select * from dblink ...';
select copia_pessoa('nome_do_esquema','12')
Uma outra forma de utilização foi:
select copia_pessoa('18052013',ibge::varchar) from estados
onde na tabela estados se obtém os códigos do IBGE dos estado no campo ibge.
create table estados (ibge integer, uf char(2));
insert into estados (ibge, uf) values (11,'RO');
insert into estados (ibge, uf) values (12,'AC');
insert into estados (ibge, uf) values (13,'AM');
insert into estados (ibge, uf) values (14,'RR');
insert into estados (ibge, uf) values (16,'AP');
insert into estados (ibge, uf) values (17,'TO');
insert into estados (ibge, uf) values (22,'PI');
insert into estados (ibge, uf) values (23,'CE');
insert into estados (ibge, uf) values (24,'RN');
insert into estados (ibge, uf) values (25,'PB');
insert into estados (ibge, uf) values (27,'AL');
insert into estados (ibge, uf) values (28,'SE');
insert into estados (ibge, uf) values (29,'BA');
insert into estados (ibge, uf) values (31,'MG');
insert into estados (ibge, uf) values (41,'PR');
insert into estados (ibge, uf) values (43,'RS');
insert into estados (ibge, uf) values (50,'MS');
insert into estados (ibge, uf) values (51,'MT');
insert into estados (ibge, uf) values (52,'GO');
insert into estados (ibge, uf) values (53,'DF');
insert into estados (ibge, uf) values (15,'PA');
insert into estados (ibge, uf) values (21,'MA');
insert into estados (ibge, uf) values (33,'RJ');
insert into estados (ibge, uf) values (35,'SP');
insert into estados (ibge, uf) values (42,'SC');
insert into estados (ibge, uf) values (26,'PE');
insert into estados (ibge, uf) values (32,'ES');
quinta-feira, 2 de maio de 2013
UPDATE com um comando SQL
Precisei atualizar a tabela pradin.s00031label os campos UF, MUNICIPIO, LAT, LON a partir da tabela mapas.shp_munic. Estava com preguiça em escrever 4 consultas SQL uma para cada campo. Com a expressão abaixo consegui fazer um comando SQL para atualizar 4 campos em um SGBD Postgresql 9.2.
update pradin.s00031label
set
uf = b.uf,
municipio = b.nome ,
lat = b.latitude,
lon = b.longitude
from
mapas.shp_munic b
where
s00031label.ibge=b.ibge
quinta-feira, 4 de abril de 2013
comando UPDATE e DBLINK
O problema que tive é atualizar o campo "ibge7" da tabela "dados" com informações contidas em um outro banco de dados.
Utilizei o comando UPDATE e DBLINK
update sisfam.dados as l set ibge7 = (
select geocodigo from
(
select geocodigo, nome, ibge, sigla
from dblink
(
'dbname=database
hostaddr=enderecoip
user=usuario
password=senha
port=porta',
'
select m.geocodigo, m.nome, m.ibge, u.sigla
from mapas.shp_munic m , mapas.shp_uf u
where trunc(m.ibge/10000)=u.ibge'
)
as t1(geocodigo bigint, nome varchar, ibge bigint, sigla char(2))
)
as f
where lower(trim(f.sigla))=lower(trim(l.uf))
and lower(trim(f.nome)) = lower(trim(l.municipio))
)
quinta-feira, 28 de março de 2013
Versão do Centos Instalado
cat /etc/*release*
Arquitetura da Instalacao
uname -m : This command will give you an output like x86_64 or i686.
Assinar:
Comentários (Atom)