Mostrando postagens com marcador DBlink. Mostrar todas as postagens
Mostrando postagens com marcador DBlink. Mostrar todas as postagens

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.

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))
)