Utilitários

Arquivo

i3geo/classesjs/classe_util.js

Licenca

GPL2

I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet

Direitos Autorais Reservados © 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar..nosp@m.moretti@mma.g.nosp@m.ov.br

Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; tanto a versão 2 da Licença.  Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.  Consulte a Licença Pública Geral do GNU para mais detalhes.  Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.

Summary
Utilitáriosi3geo/classesjs/classe_util.js
Propriedades
navmVerdadeiro (true) se o navegador for o Internet Explorer
navnVerdadeiro (true) se o navegador for o Firefox
Variaveis
g_operacaoNome da última operação que foi executada.
g_tipoacaoTipo de ação que está sendo executada.
Functions
$iObtém um elemento DOM a partir de seu id
Array. remove()Extende os métodos de um objeto Array, permitindo remover um elemento.
Classe
i3GEO.utilUtilitários.
Variaveis
PINSElementos IMG criados na função criaPin
Functions
escapeURLConverte uma string em uma url válida
insereCookieCria um novo cookie.
pegaCookiePega o valor de um cookie.
listaChavesLista as chaves de um objeto.
criaBotaoAplicarCria um botão flutuante do tipo aplicar.
arvoreCria uma árvore com base em um objeto contendo aspropriedades.
removeAcentosRemove acentos de uma palavra ou frase
protocoloObtém o protocolo utilizado na URL atual
pegaPosicaoObjetoRetorna a posição x,y de um objeto em relação a tela do navegador
pegaElementoPaiPega o elemento pai de um elemento clicado para identificar o código do tema.
mudaCursorAltera o cursor do ponteiro do mouse.
criaBoxCria um elemento div na página atual.
escondeBoxEsconde os BOXES com IDs registrados em i3GEO.util.BOXES
criaPinCria um elemento imagem na página atual.
posicionaImagemNoMapaPosiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa
escondePinEsconde os PINS com IDs registrados em i3GEO.util.PINS
$im ou nome curto $imRetorna o caminho correto de uma imagem incluindo o endereço da aplicação e do visual em uso.
$top ou nome curto $topMuda a posição (superior) de um objeto tanto no IE como no Firefox.
$left ou nome curto $leftMuda a posição (esquerda) de um objeto tanto no IE como no Firefox.
insereMarcaInsere ou remove pontos no mapa.
criaInsere um ponto no mapa
adicionaSHPInclui um arquivo shapefile no mapa atual como uma nova camada
abreCorAbre a janela flutuante para escolha de uma cor
ajaxhttpCria o objeto XMLHttpRequest para uso com funções próprias de chamada em ajax
ajaxexecASXmlExecuta uma chamada ajax no modo assíncrono retornando o resultado em XML.
apareceAplica efeito de aparecimento suave de um objetov
desapareceAplica efeito de desaparecimento suave de um objeto
wkt2extCalcula a extensão geográfica de uma geometria fornecida no formato WKT
sortNumberOrdena um array contendo números.
getScrollerWidthCalcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da área útil do navegador
scriptTagInsere um javascript no documento HTML
mensagemAjudaFormata uma mensagem de texto com ícone de ?
randomRGBGera uma cor RGB de forma aleatória
rgb2hexConverte uma cor RGB para HEX
comboTemasCria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo
checkTemasCria uma lista com check box de temas existentes no mapa e de determinado tipo
comboItensCria um combo (caixa de seleção) com a lista de itens de um layer
comboValoresItemCria uma caixa de seleção com os valores de um item de um tema
comboFontesCria um combo (caixa de seleção) com a lista fontes de texto disponíveis
comboSimNaoCria uma caixa de seleção com as palavras sim e não
checkItensEditaveisCria uma lista de elementos do tipo input com textos editáveis contendo a lista de itens de um tema.
radioEpsgCria uma lista de códigos EPSG para o usuário escolher um deles.
proximoAnteriorCria uma sequência de opções com botão de anterior e próximo.

Propriedades

navm

Verdadeiro (true) se o navegador for o Internet Explorer

Tipo

{boolean}

Default

{false}

navn

Verdadeiro (true) se o navegador for o Firefox

Tipo

{boolean}

Default

{false}

Variaveis

g_operacao

Nome da última operação que foi executada.

Dependendo do tipo de operação são aplicadas as atualizações necessárias aos componentes do mapa.  Por exemplo, redesenha o corpo do mapa, atualiza a lista de temas, etc.

Essas operações são controladas pela função ajaxiniciaparametros.

g_tipoacao

Tipo de ação que está sendo executada.  Quando o usuário clica no mapa, essa variável é pesquisada para definir o tipo de operação que deve ser executada.  É definida quando o usuário seleciona uma determinada ferramenta do i3Geo.

Functions

$i

$i = function(id)

Obtém um elemento DOM a partir de seu id

Parametros

id{String} ID do elemento.

Returns

{Object} Objeto.

Array. remove()

Extende os métodos de um objeto Array, permitindo remover um elemento.

Classe

i3GEO.util

Utilitários.

Variaveis

PINS

Elementos IMG criados na função criaPin

Tipo

{Array}

Functions

escapeURL

escapeURL: function(sUrl)

Converte uma string em uma url válida

Parametros

sUrl {String}url que será convertida

Return

Tipo

{String}

insereCookie

insereCookie: function(nome,
valor)

Cria um novo cookie.

Parametros

nome{String} Nome do cookie.
valor(String) Valor do cookie

pegaCookie

pegaCookie: function(nome)

Pega o valor de um cookie.

Parametros

nome{String} Nome do cookie.

Returns

(String)valor do cookie

listaChaves

listaChaves: function (obj)

Lista as chaves de um objeto.

Parametros

obj{Object}

Return

(Array)array com as chaves.

criaBotaoAplicar

criaBotaoAplicar: function (nomeFuncao,
titulo,
classe,
obj)

Cria um botão flutuante do tipo aplicar.

O novo botão é adicionado no DOM com ID “i3geo_aplicar” e posicionado sobre o objeto definido

Parametros

nomeFuncao{String} Nome da função que será executada quando o botão for cllicado
titulo(opcional) {String} Título que será mostrado no botão
classe(opcional) {String} Nome da classe (estilo) que será aplicado ao botão.
obj(opcional) {Objeto} Objeto DOM que foi clicado para provocar a criação do botão.

Return

(Object)Objeto DOM criado.

arvore

arvore: function(titulo,
onde,
obj)

Cria uma árvore com base em um objeto contendo aspropriedades.

Parametros

titulo{String} cabeçaljo da árvore
onde{String} nome do id doelemento que conterá a árvore
obj{Object} objeto contendo os parâmetros, exemplo

g_listaPropriedades = {

”propriedades”: [

{ text: “p2”, url: “javascript:tipoimagem()” }

]}

removeAcentos

removeAcentos: function(palavra)

Remove acentos de uma palavra ou frase

Parametros

palavra {String}

Return

{String}

protocolo

protocolo: function()

Obtém o protocolo utilizado na URL atual

Return

{String}protocolo

pegaPosicaoObjeto

pegaPosicaoObjeto: function(obj)

Retorna a posição x,y de um objeto em relação a tela do navegador

Parametros

obj {Object}objeto dom

Return

{Array}array com a posição [x,y]

pegaElementoPai

pegaElementoPai: function(e)

Pega o elemento pai de um elemento clicado para identificar o código do tema.

Parametros

eelemento do DOM.

Return

{Node}objeto DOM

mudaCursor

mudaCursor: function(cursores,
tipo,
idobjeto,
locaplic)

Altera o cursor do ponteiro do mouse.

Os cursores disponíveis são definidos por default em classe_configura.js

Parametros

cursores {i3GEO.configura.cursores}objeto JSON com as URIs de cada cursor (veja i3GEO.configura.cursores)
tipo {String}tipo de cursor disponível em cursores
idobjeto {String}id do objeto que terá o estilo alterado para o cursor desejado
locaplic {String}onde está instalado o i3Geo

criaBox

criaBox: function(id)

Cria um elemento div na página atual.

Esse elemento pode ser utilizado para desenhar retângulos sobre o mapa

Parametros

id {String}id do elemento que será criado.  Por default, será ‘boxg’

escondeBox

escondeBox: function()

Esconde os BOXES com IDs registrados em i3GEO.util.BOXES

Os ids são criado pela função criaBox

criaPin

criaPin: function(id,
imagem,
w,
h)

Cria um elemento imagem na página atual.

Esse elemento pode ser utilizado para desenhar pontos sobre o mapa

Parametros

id {String}(opcional) id do elemento que será criado.  Por default, será ‘boxpin’
imagem {URL}(opcional) endereço da imagem
w {String}(opcional) largura da imagem
h {String}(opcional) altura da imagem

posicionaImagemNoMapa

posicionaImagemNoMapa: function(id)

Posiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa

Parametros

id {string}id do elemento que será posicionado

escondePin

escondePin: function()

Esconde os PINS com IDs registrados em i3GEO.util.PINS

Os ids são criado pela função criaPin

$im ou nome curto $im

Retorna o caminho correto de uma imagem incluindo o endereço da aplicação e do visual em uso.

Exemplo: $im(“imagem.png”)

Parametros

g {String}nome da imagem

Retorno

stringcaminho para a imagem

$top ou nome curto $top

Muda a posição (superior) de um objeto tanto no IE como no Firefox.

Exemplo: $top(“imagem”,100)

Parametros

ididentificador do objeto
valorposição em relação ao topo.

$left ou nome curto $left

Muda a posição (esquerda) de um objeto tanto no IE como no Firefox.

Exemplo: $left(“imagem”,100)

Parametros

ididentificador do objeto
valorposição em relação a esquerda.

insereMarca

insereMarca:

Insere ou remove pontos no mapa.

cria

cria:function(xi,
yi,
funcaoOnclick,
container)

Insere um ponto no mapa

Os pontos são inseridos em um contaier de pontos e mostrados temporáriamente

Parametros

xi {Numeric}coordenada x.
yi {Numeric}coordenada y.
funcaoOnclick {String}funcao que sera executada quando a marca for clicada, se for “”, o container será esvaziado ao ser clicado na marca
container {String}id do container que receberá os pontos

adicionaSHP

adicionaSHP: function(path)

Inclui um arquivo shapefile no mapa atual como uma nova camada

Parametros

path {String}caminho completo do shapefile

abreCor

abreCor: function(janela,
elemento,
tipo)

Abre a janela flutuante para escolha de uma cor

Parametros

janela {String}id do conteúdo da janela flutuante que chamou a função.  Pode ser “” caso elemento exista em document
elemento {String}id do elemento que receberá os valores da cor selecionada
tipo {String}opcional pode ser definido como rgb ou hex indicando o tipo de retorno da cor

ajaxhttp

ajaxhttp: function()

Cria o objeto XMLHttpRequest para uso com funções próprias de chamada em ajax

O uso dessa função não é recomendado.  Dê preferência para uso da chamada ajax via YUI

Return

{XMLHttpRequest}

ajaxexecASXml

ajaxexecASXml: function(programa,
funcao)

Executa uma chamada ajax no modo assíncrono retornando o resultado em XML.

Parametros

programa {String}URL do programa que será executado no servidor.
funcao {funcao}função que tratará o resultado.

Returns

O resultado em um objeto DOM.  Se o retorno contiver a palavra “Erro”, é gerado um alert.

aparece

aparece: function(id,
tempo,
intervalo)

Aplica efeito de aparecimento suave de um objetov

Parametros

id {String}id do objeto
tempo {Integer}tempo em milesegundos que levará o efeito
intervalo {Integer}intervalo entre uma imagem e outra

desaparece

desaparece: function(id,
tempo,
intervalo,
removeobj)

Aplica efeito de desaparecimento suave de um objeto

Parametros

id {String}id do objeto
tempo {Integer}tempo em milesegundos que levará o efeito
intervalo {Integer}intervalo entre uma imagem e outra
removeobj {Boolean}remove ou não o objeto no final

wkt2ext

wkt2ext:function(wkt,
tipo)

Calcula a extensão geográfica de uma geometria fornecida no formato WKT

Parametros

wkt {String}geometria no formato wkt
tipo {String}tipo de geometria (polygon,point,line)

Return

{String}extensão geográfica (xmin ymin xmax ymax)

sortNumber

sortNumber: function(a,
b)

Ordena um array contendo números.  Deve ser usado como parâmetro do método “sort”, exemplo

y.sort(i3GEO.util.sortNumber), onde y é um array de números

getScrollerWidth

getScrollerWidth: function()

Calcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da área útil do navegador

http://www.fleegix.org- /articles- /2006-05-30-getting-the-scrollbar-width-in-pixels

Return

altura

scriptTag

scriptTag: function(js,
ini,
id)

Insere um javascript no documento HTML

Parametros

js {String}endereco do JS
inifuncao do JS que será executada ao ser carregado o script (pode ser “”)
idid do elemento script que será criado

mensagemAjuda

mensagemAjuda: function(onde,
texto)

Formata uma mensagem de texto com ícone de ?

Parametros

onde {String}id do elemento que receberá a mensagem
texto {String}texto da mensagem

randomRGB

randomRGB: function()

Gera uma cor RGB de forma aleatória

Return

{String}r,g,b

rgb2hex

rgb2hex: function(str)

Converte uma cor RGB para HEX

Parametro

str {String}r,g,b

Return

{String}

comboTemas

comboTemas: function(id,
funcao,
onde,
nome,
multiplo,
tipoCombo)

Cria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo

Parametros

id {String}id do elemento select que será criado
funcao {Function}função que será executada ao terminar a montagem do combo.  Essa função receberá como parâmetros um Array associativo contendo os dados em HTML gerados e o tipo de resultado.  P.ex.: {dados:comboTemas,tipo:”dados”} tipo será uma string que pode ser “dados”|”mensagem”|”erro” indicando o tipo de retorno.
onde {String}id do elemento HTML que receberá o combo.  É utilizado apenas para inserir uma mensagem de aguarde.
nome {String}valor que será incluido no parametro “name” do elemento “select”.
multiplo {Booleano}indica se o combo permite seleções múltiplas
tipoCombo {String}Tipo de temas que serão incluídos no combo ligados|selecionados|raster|pontosSelecionados|pontos

checkTemas

checkTemas: function(id,
funcao,
onde,
nome,
tipoLista,
prefixo,
size)

Cria uma lista com check box de temas existentes no mapa e de determinado tipo

Parametros

id {String}id do elemento select que será criado
funcao {Function}função que será executada ao terminar a montagem do combo.  Essa função receberá como parâmetros um Array associativo contendo os dados em HTML gerados e o tipo de resultado.  P.ex.: {dados:comboTemas,tipo:”dados”} tipo será uma string que pode ser “dados”|”mensagem”|”erro” indicando o tipo de retorno.
onde {String}id do elemento HTML que receberá o combo.  É utilizado apenas para inserir uma mensagem de aguarde.
nome {String}valor que será incluido no parametro “name” do elemento “select”.
tipoLista {String}Tipo de temas que serão incluídos na lista ligados|selecionados|raster|pontosSelecionados|pontos|polraster
prefixo {string}Prefixo que será usado no id de cada elemento
size {numeric}tamanho dos elementos input editáveis

comboItens

comboItens: function(id,
tema,
funcao,
onde,
nome)

Cria um combo (caixa de seleção) com a lista de itens de um layer

Parametros

id {String}id do elemento select que será criado
tema {String}código do tema (layer)
funcao {Function}função que será executada ao terminar a montagem do combo.  Essa função receberá como parâmetros um Array associativo contendo os dados em HTML gerados e o tipo de resultado.  P.ex.: {dados:comboTemas,tipo:”dados”} tipo será uma string que pode ser “dados”|”mensagem”|”erro” indicando o tipo de retorno.
onde {String}id do elemento HTML que receberá o combo.  É utilizado apenas para inserir uma mensagem de aguarde.
nome {String}valor que será incluido no parametro “name” do elemento “select”.

comboValoresItem

comboValoresItem: function(id,
tema,
itemTema,
funcao,
onde)

Cria uma caixa de seleção com os valores de um item de um tema

Parametros

id {String}id do elemento select que será criado
tema {String}código do tema (layer)
itemTema {String}nome do item
funcao {Function}função que será executada ao terminar a montagem do combo.  Essa função receberá como parâmetros um Array associativo contendo os dados em HTML gerados e o tipo de resultado.  P.ex.: {dados:comboTemas,tipo:”dados”} tipo será uma string que pode ser “dados”|”mensagem”|”erro” indicando o tipo de retorno.
onde {String}id do elemento HTML que receberá o combo.  É utilizado apenas para inserir uma mensagem de aguarde.

comboFontes

comboFontes: function(id,
onde)

Cria um combo (caixa de seleção) com a lista fontes de texto disponíveis

Parametros

id {String}id do elemento select que será criado
onde {String}id do elemento HTML que receberá o combo.  É utilizado apenas para inserir uma mensagem de aguarde.

comboSimNao

comboSimNao: function(id,
selecionado)

Cria uma caixa de seleção com as palavras sim e não

Parametros

id [String}id do elemento select que será criado
selecionado {string}qual valor estará selecionado sim|nao

Return

{string}

checkItensEditaveis

checkItensEditaveis: function(tema,
funcao,
onde,
size,
prefixo)

Cria uma lista de elementos do tipo input com textos editáveis contendo a lista de itens de um tema.

Parametros

tema {string}código do layer existente no mapa
funcao {function}função que será executada para montar a lista.  Essa função receberá como parâmetro um array do tipo {dados:ins,tipo:”dados”} onde ins é um array com as linhas e tipo é o tipo de resultado, que pode ser “dados”|”erro”
onde {string}id do elemento que receberá a mensagem de aguarde
size {numeric}tamanho dos elementos input editáveis
prefixo {string}Prefixo que será usado no id de cada elemento

radioEpsg

radioEpsg: function (funcao,
onde,
prefixo)

Cria uma lista de códigos EPSG para o usuário escolher um deles.

A lista é mostrada como uma série de elementos do tipo radio com “name” igual ao prefixo mais a palavra EPSG

Parametros

funcao {function}função que será executada para montar a lista.  Essa função receberá como parâmetro um array do tipo {dados:ins,tipo:”dados”} onde ins é um array com as linhas e tipo é o tipo de resultado, que pode ser “dados”|”erro”
onde {string}id do elemento que receberá a mensagem de aguarde
prefixo {string}Prefixo que será usado no name de cada elemento

proximoAnterior

proximoAnterior: function(anterior,
proxima,
texto,
idatual,
container)

Cria uma sequência de opções com botão de anterior e próximo.  É utilizado principalmente pelas ferramentas de análise espacial, onde o usuário segue uma sequência de operações de escolha de parâmetros.

Parametros

anterior {String}nome da função que é executada para voltar à tela anterior.  Pode ser “”.
proxima {String}nome da função que é executada para avançar para a próxima tela.  Pode ser “”.
texto {String}texto que comporá a tela atual
idatual {String}id do elemento DIV que será criado para inserir o conteúdo definido em ‘texto”
container {String}id do elemento DIV já existente que receberá as telas.
$i = function(id)
Obtém um elemento DOM a partir de seu id
escapeURL: function(sUrl)
Converte uma string em uma url válida
insereCookie: function(nome,
valor)
Cria um novo cookie.
pegaCookie: function(nome)
Pega o valor de um cookie.
listaChaves: function (obj)
Lista as chaves de um objeto.
criaBotaoAplicar: function (nomeFuncao,
titulo,
classe,
obj)
Cria um botão flutuante do tipo aplicar.
arvore: function(titulo,
onde,
obj)
Cria uma árvore com base em um objeto contendo aspropriedades.
removeAcentos: function(palavra)
Remove acentos de uma palavra ou frase
protocolo: function()
Obtém o protocolo utilizado na URL atual
pegaPosicaoObjeto: function(obj)
Retorna a posição x,y de um objeto em relação a tela do navegador
pegaElementoPai: function(e)
Pega o elemento pai de um elemento clicado para identificar o código do tema.
mudaCursor: function(cursores,
tipo,
idobjeto,
locaplic)
Altera o cursor do ponteiro do mouse.
criaBox: function(id)
Cria um elemento div na página atual.
escondeBox: function()
Esconde os BOXES com IDs registrados em i3GEO.util.BOXES
criaPin: function(id,
imagem,
w,
h)
Cria um elemento imagem na página atual.
posicionaImagemNoMapa: function(id)
Posiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa
escondePin: function()
Esconde os PINS com IDs registrados em i3GEO.util.PINS
insereMarca:
Insere ou remove pontos no mapa.
cria:function(xi,
yi,
funcaoOnclick,
container)
Insere um ponto no mapa
adicionaSHP: function(path)
Inclui um arquivo shapefile no mapa atual como uma nova camada
abreCor: function(janela,
elemento,
tipo)
Abre a janela flutuante para escolha de uma cor
ajaxhttp: function()
Cria o objeto XMLHttpRequest para uso com funções próprias de chamada em ajax
ajaxexecASXml: function(programa,
funcao)
Executa uma chamada ajax no modo assíncrono retornando o resultado em XML.
aparece: function(id,
tempo,
intervalo)
Aplica efeito de aparecimento suave de um objetov
desaparece: function(id,
tempo,
intervalo,
removeobj)
Aplica efeito de desaparecimento suave de um objeto
wkt2ext:function(wkt,
tipo)
Calcula a extensão geográfica de uma geometria fornecida no formato WKT
sortNumber: function(a,
b)
Ordena um array contendo números.
getScrollerWidth: function()
Calcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da área útil do navegador
scriptTag: function(js,
ini,
id)
Insere um javascript no documento HTML
mensagemAjuda: function(onde,
texto)
Formata uma mensagem de texto com ícone de ?
randomRGB: function()
Gera uma cor RGB de forma aleatória
rgb2hex: function(str)
Converte uma cor RGB para HEX
comboTemas: function(id,
funcao,
onde,
nome,
multiplo,
tipoCombo)
Cria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo
checkTemas: function(id,
funcao,
onde,
nome,
tipoLista,
prefixo,
size)
Cria uma lista com check box de temas existentes no mapa e de determinado tipo
comboItens: function(id,
tema,
funcao,
onde,
nome)
Cria um combo (caixa de seleção) com a lista de itens de um layer
comboValoresItem: function(id,
tema,
itemTema,
funcao,
onde)
Cria uma caixa de seleção com os valores de um item de um tema
comboFontes: function(id,
onde)
Cria um combo (caixa de seleção) com a lista fontes de texto disponíveis
comboSimNao: function(id,
selecionado)
Cria uma caixa de seleção com as palavras sim e não
checkItensEditaveis: function(tema,
funcao,
onde,
size,
prefixo)
Cria uma lista de elementos do tipo input com textos editáveis contendo a lista de itens de um tema.
radioEpsg: function (funcao,
onde,
prefixo)
Cria uma lista de códigos EPSG para o usuário escolher um deles.
proximoAnterior: function(anterior,
proxima,
texto,
idatual,
container)
Cria uma sequência de opções com botão de anterior e próximo.