i3geo/classesjs/classe_util.js
GPL2
I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
Direitos Autorais Reservados © 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.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.
| Utilitários | i3geo/classesjs/classe_util.js |
| Propriedades | |
| navm | Verdadeiro (true) se o navegador for o Internet Explorer |
| navn | Verdadeiro (true) se o navegador for o Firefox |
| Variaveis | |
| g_operacao | Nome da última operação que foi executada. |
| g_tipoacao | Tipo de ação que está sendo executada. |
| Functions | |
| $i | Obté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.util | Utilitários. |
| Variaveis | |
| PINS | Elementos IMG criados na função criaPin |
| Functions | |
| escapeURL | Converte uma string em uma url válida |
| insereCookie | Cria um novo cookie. |
| pegaCookie | Pega o valor de um cookie. |
| listaChaves | Lista as chaves de um objeto. |
| criaBotaoAplicar | Cria um botão flutuante do tipo aplicar. |
| arvore | Cria uma árvore com base em um objeto contendo aspropriedades. |
| removeAcentos | Remove acentos de uma palavra ou frase |
| protocolo | Obtém o protocolo utilizado na URL atual |
| pegaPosicaoObjeto | Retorna a posição x,y de um objeto em relação a tela do navegador |
| pegaElementoPai | Pega o elemento pai de um elemento clicado para identificar o código do tema. |
| mudaCursor | Altera o cursor do ponteiro do mouse. |
| criaBox | Cria um elemento div na página atual. |
| escondeBox | Esconde os BOXES com IDs registrados em i3GEO.util.BOXES |
| criaPin | Cria um elemento imagem na página atual. |
| posicionaImagemNoMapa | Posiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa |
| escondePin | Esconde os PINS com IDs registrados em i3GEO.util.PINS |
| $im ou nome curto $im | Retorna o caminho correto de uma imagem incluindo o endereço da aplicação e do visual em uso. |
| $top ou nome curto $top | Muda a posição (superior) de um objeto tanto no IE como no Firefox. |
| $left ou nome curto $left | Muda a posição (esquerda) de um objeto tanto no IE como no Firefox. |
| insereMarca | Insere ou remove pontos no mapa. |
| cria | Insere um ponto no mapa |
| adicionaSHP | Inclui um arquivo shapefile no mapa atual como uma nova camada |
| abreCor | Abre a janela flutuante para escolha de uma cor |
| ajaxhttp | Cria o objeto XMLHttpRequest para uso com funções próprias de chamada em ajax |
| ajaxexecASXml | Executa uma chamada ajax no modo assíncrono retornando o resultado em XML. |
| aparece | Aplica efeito de aparecimento suave de um objetov |
| desaparece | Aplica efeito de desaparecimento suave de um objeto |
| wkt2ext | Calcula a extensão geográfica de uma geometria fornecida no formato WKT |
| sortNumber | Ordena um array contendo números. |
| getScrollerWidth | Calcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da área útil do navegador |
| scriptTag | Insere um javascript no documento HTML |
| mensagemAjuda | Formata uma mensagem de texto com ícone de ? |
| randomRGB | Gera uma cor RGB de forma aleatória |
| rgb2hex | Converte uma cor RGB para HEX |
| comboTemas | Cria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo |
| checkTemas | Cria uma lista com check box de temas existentes no mapa e de determinado tipo |
| comboItens | Cria um combo (caixa de seleção) com a lista de itens de um layer |
| comboValoresItem | Cria uma caixa de seleção com os valores de um item de um tema |
| comboFontes | Cria um combo (caixa de seleção) com a lista fontes de texto disponíveis |
| comboSimNao | Cria uma caixa de seleção com as palavras sim e não |
| checkItensEditaveis | Cria uma lista de elementos do tipo input com textos editáveis contendo a lista de itens de um tema. |
| radioEpsg | Cria uma lista de códigos EPSG para o usuário escolher um deles. |
| proximoAnterior | Cria uma sequência de opções com botão de anterior e próximo. |
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.
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.
$i = function( id )
Obtém um elemento DOM a partir de seu id
| id | {String} ID do elemento. |
{Object} Objeto.
escapeURL: function( sUrl )
Converte uma string em uma url válida
| sUrl {String} | url que será convertida |
{String}
insereCookie: function( nome, valor )
Cria um novo cookie.
| nome | {String} Nome do cookie. |
| valor | (String) Valor do cookie |
pegaCookie: function( nome )
Pega o valor de um cookie.
| nome | {String} Nome do cookie. |
| (String) | valor do cookie |
listaChaves: function ( obj )
Lista as chaves de um objeto.
| obj | {Object} |
| (Array) | array com as chaves. |
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
| 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. |
| (Object) | Objeto DOM criado. |
arvore: function( titulo, onde, obj )
Cria uma árvore com base em um objeto contendo aspropriedades.
| 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: function( palavra )
Remove acentos de uma palavra ou frase
palavra {String}
{String}
pegaPosicaoObjeto: function( obj )
Retorna a posição x,y de um objeto em relação a tela do navegador
| obj {Object} | objeto dom |
| {Array} | array com a posição [x,y] |
pegaElementoPai: function( e )
Pega o elemento pai de um elemento clicado para identificar o código do tema.
| e | elemento do DOM. |
| {Node} | objeto DOM |
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
| 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: function( id )
Cria um elemento div na página atual.
Esse elemento pode ser utilizado para desenhar retângulos sobre o mapa
| id {String} | id do elemento que será criado. Por default, será ‘boxg’ |
escondeBox: function()
Esconde os BOXES com IDs registrados em i3GEO.util.BOXES
Os ids são criado pela função criaBox
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
| 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: function( id )
Posiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa
| id {string} | id do elemento que será posicionado |
escondePin: function()
Esconde os PINS com IDs registrados em i3GEO.util.PINS
Os ids são criado pela função criaPin
Retorna o caminho correto de uma imagem incluindo o endereço da aplicação e do visual em uso.
Exemplo: $im(“imagem.png”)
| g {String} | nome da imagem |
| string | caminho para a imagem |
Muda a posição (superior) de um objeto tanto no IE como no Firefox.
Exemplo: $top(“imagem”,100)
| id | identificador do objeto |
| valor | posição em relação ao topo. |
Muda a posição (esquerda) de um objeto tanto no IE como no Firefox.
Exemplo: $left(“imagem”,100)
| id | identificador do objeto |
| valor | posição em relação a esquerda. |
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
| 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: function( path )
Inclui um arquivo shapefile no mapa atual como uma nova camada
| path {String} | caminho completo do shapefile |
abreCor: function( janela, elemento, tipo )
Abre a janela flutuante para escolha de uma cor
| 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: 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
{XMLHttpRequest}
ajaxexecASXml: function( programa, funcao )
Executa uma chamada ajax no modo assíncrono retornando o resultado em XML.
| programa {String} | URL do programa que será executado no servidor. |
| funcao {funcao} | função que tratará o resultado. |
O resultado em um objeto DOM. Se o retorno contiver a palavra “Erro”, é gerado um alert.
aparece: function( id, tempo, intervalo )
Aplica efeito de aparecimento suave de um objetov
| id {String} | id do objeto |
| tempo {Integer} | tempo em milesegundos que levará o efeito |
| intervalo {Integer} | intervalo entre uma imagem e outra |
desaparece: function( id, tempo, intervalo, removeobj )
Aplica efeito de desaparecimento suave de um objeto
| 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:function( wkt, tipo )
Calcula a extensão geográfica de uma geometria fornecida no formato WKT
| wkt {String} | geometria no formato wkt |
| tipo {String} | tipo de geometria (polygon,point,line) |
| {String} | extensão geográfica (xmin ymin xmax ymax) |
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: 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
altura
scriptTag: function( js, ini, id )
Insere um javascript no documento HTML
| js {String} | endereco do JS |
| ini | funcao do JS que será executada ao ser carregado o script (pode ser “”) |
| id | id do elemento script que será criado |
mensagemAjuda: function( onde, texto )
Formata uma mensagem de texto com ícone de ?
| onde {String} | id do elemento que receberá a mensagem |
| texto {String} | texto da mensagem |
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
| 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: function( id, funcao, onde, nome, tipoLista, prefixo, size )
Cria uma lista com check box de temas existentes no mapa e de determinado tipo
| 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: function( id, tema, funcao, onde, nome )
Cria um combo (caixa de seleção) com a lista de itens de um layer
| 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: function( id, tema, itemTema, funcao, onde )
Cria uma caixa de seleção com os valores de um item de um tema
| 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: function( id, onde )
Cria um combo (caixa de seleção) com a lista fontes de texto disponíveis
| 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: function( id, selecionado )
Cria uma caixa de seleção com as palavras sim e não
| id [String} | id do elemento select que será criado |
| selecionado {string} | qual valor estará selecionado sim|nao |
{string}
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.
| 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: 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
| 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: 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.
| 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. |
Obtém um elemento DOM a partir de seu id
$i = function( id )
Converte uma string em uma url válida
escapeURL: function( sUrl )
Cria um novo cookie.
insereCookie: function( nome, valor )
Pega o valor de um cookie.
pegaCookie: function( nome )
Lista as chaves de um objeto.
listaChaves: function ( obj )
Cria um botão flutuante do tipo aplicar.
criaBotaoAplicar: function ( nomeFuncao, titulo, classe, obj )
Cria uma árvore com base em um objeto contendo aspropriedades.
arvore: function( titulo, onde, obj )
Remove acentos de uma palavra ou frase
removeAcentos: function( palavra )
Obtém o protocolo utilizado na URL atual
protocolo: function()
Retorna a posição x,y de um objeto em relação a tela do navegador
pegaPosicaoObjeto: function( obj )
Pega o elemento pai de um elemento clicado para identificar o código do tema.
pegaElementoPai: function( e )
Altera o cursor do ponteiro do mouse.
mudaCursor: function( cursores, tipo, idobjeto, locaplic )
Cria um elemento div na página atual.
criaBox: function( id )
Esconde os BOXES com IDs registrados em i3GEO.util.BOXES
escondeBox: function()
Cria um elemento imagem na página atual.
criaPin: function( id, imagem, w, h )
Posiciona uma imagem no mapa no local onde o mouse está posicionado sobre o mapa
posicionaImagemNoMapa: function( id )
Esconde os PINS com IDs registrados em i3GEO.util.PINS
escondePin: function()
Insere ou remove pontos no mapa.
insereMarca:
Insere um ponto no mapa
cria:function( xi, yi, funcaoOnclick, container )
Inclui um arquivo shapefile no mapa atual como uma nova camada
adicionaSHP: function( path )
Abre a janela flutuante para escolha de uma cor
abreCor: function( janela, elemento, tipo )
Cria o objeto XMLHttpRequest para uso com funções próprias de chamada em ajax
ajaxhttp: function()
Executa uma chamada ajax no modo assíncrono retornando o resultado em XML.
ajaxexecASXml: function( programa, funcao )
Aplica efeito de aparecimento suave de um objetov
aparece: function( id, tempo, intervalo )
Aplica efeito de desaparecimento suave de um objeto
desaparece: function( id, tempo, intervalo, removeobj )
Calcula a extensão geográfica de uma geometria fornecida no formato WKT
wkt2ext:function( wkt, tipo )
Ordena um array contendo números.
sortNumber: function( a, b )
Calcula o tamanho da barra de rolagem, permitindo calcular o tamanho correto da área útil do navegador
getScrollerWidth: function()
Insere um javascript no documento HTML
scriptTag: function( js, ini, id )
Formata uma mensagem de texto com ícone de ?
mensagemAjuda: function( onde, texto )
Gera uma cor RGB de forma aleatória
randomRGB: function()
Converte uma cor RGB para HEX
rgb2hex: function( str )
Cria um combo (caixa de seleção) com a lista de temas existentes no mapa e de determinado tipo
comboTemas: function( id, funcao, onde, nome, multiplo, tipoCombo )
Cria uma lista com check box de temas existentes no mapa e de determinado tipo
checkTemas: function( id, funcao, onde, nome, tipoLista, prefixo, size )
Cria um combo (caixa de seleção) com a lista de itens de um layer
comboItens: function( id, tema, funcao, onde, nome )
Cria uma caixa de seleção com os valores de um item de um tema
comboValoresItem: function( id, tema, itemTema, funcao, onde )
Cria um combo (caixa de seleção) com a lista fontes de texto disponíveis
comboFontes: function( id, onde )
Cria uma caixa de seleção com as palavras sim e não
comboSimNao: function( id, selecionado )
Cria uma lista de elementos do tipo input com textos editáveis contendo a lista de itens de um tema.
checkItensEditaveis: function( tema, funcao, onde, size, prefixo )
Cria uma lista de códigos EPSG para o usuário escolher um deles.
radioEpsg: function ( funcao, onde, prefixo )
Cria uma sequência de opções com botão de anterior e próximo.
proximoAnterior: function( anterior, proxima, texto, idatual, container )