Entre em http://code.google.com/p/julio/source/checkout e siga as instruções.
O pré-requisito é o swfobject. Carregue-o antes de tudo:
<script type="text/javascript" src="js/swfobject.js"> </script>
E depois o julio.js
<script type="text/javascript" src="js/julio.js"> </script>
O julio.js tem a seguinte estrutura:
<script type="text/javascript">
var flashvars = {};
flashvars.contorno = "0xFFFFFF";
var params = {};
params.allowscriptaccess = "always";
var attributes = {};
attributes.id = "julio";
attributes.name = "julio";
swfobject.embedSWF("flash/julio.swf", "julio_div", "330", "320", "8.0.0", false, flashvars, params, attributes);
function getJulio(nome) {
if(!nome) {
nome = 'julio'
}
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[nome] : document[nome];
}
function inicializaJulio() {
//Código a ser executado depois de o mapa carregar
}
</script>
No código acima, é indispensável haver o allowscriptaccess='always' que permite a conversa entre o Flash e o Javascript. Além disso, dá pau no Internet Explorer se os parâmetros do swfobject.embedSWF() não forem colocados nessa ordem e com esses valores. Altere por sua conta e risco.
No seu código deve existir um div com id julio, que é o lugar onde o mapa será inserido. Geralmente é um div que pode ter um conteúdo alternativo que será exibido no caso de o carregamento do flash dar pau:
<div id="julio"> Conteúdo alternativo </div>
É possível alterar as variáveis predefinidas do julio na hora de carregá-lo ou durante a execução.
Para que o mapa apareça na página do jeito que você quer, as variáveis devem ser colocadas dentro do objeto flashvars = {} que o swfobject usa para montar o código do flash que vai ser carregado.
Por exemplo, para carregar um mapa com contorno branco, estados pintados de preto e zoom no estado do Paraná, o seguinte código funcionaria:
flashvars.contorno = "0xFFFFFF"
flashvars.cor = "0x000000"
flashvars.zoom_uf = 'PR'
Uma lista de variáveis que podem ser utilizadas e seus possíveis valores está mais abaixo nesta página.
Caso você deseje alterar o julio via javascript depois de carregado na página, é recomendável que as suas ações sejam disparadas por uma função chamada inicializaJulio()
<script type="text/javascript">
function inicializaJulio() {
//Esta função é chamada quando o mapa termina de carregar
//e está pronto para receber comandos.
}
</script>
Aí é possível usar as funções da API do julio para mexer no mapa:
getJulio().mudaCorBr('0x000000') [testar]
getJulio().mudaCorRegiao('0xff3333','nordeste') [testar]
getJulio().zoom('SC') [testar]
Abaixo, a lista de variáveis que podem ser definidas no flashvars = {}
contorno='0x0000CC'cor='0x22CC33'opacidade=40interativo=true|falsediferenca_rollover=25zoom_uf='BR'|'AL'...'TO'funcao_tipo='AS'|'JS'funcao='minhaFuncao'O julio tem diversas funções bem simples que combinadas podem atingir resultados complexos. A seguir vemos uma lista delas que podem ser chamadas via Javascript, usando getJulio().nomeDaFuncao(parametros)
Perceba que cor e opacidade são propriedades independentes. Você pode ter o país todo com a mesma cor e variar apenas a opacidade entre os estados, por exemplo, ficando com vários tons da mesma cor.
mudaCor('0xFF3333','PA')
mudaCorRegiao('0x33FF33','centrooeste')
mudaCorBr('0x3333FF')
mudaOpacidade(20,'MA')
mudaOpacidadeRegiao(30,'sul')
mudaOpacidadeBr(90)
array_de_ufs = ['SP','SC','SE','AC']
mudaOpacidadeEmLote(70, array_de_ufs) e
mudaCorEmLote('0xCCFFCC', array_de_ufs)
defineDiferencaRollover(50)
destaca('MG')
defineFuncao('JS','alert')
defineFuncao('AS','zoom')
atribuiValor('MT','73%')
array_de_ufs = ['SP','SC','SE','AC']
array_de_valores = ['490','120','3','18']
atribuiValorEmLote(array_de_ufs, array_de_valores)
inserePonto(x=165, y=160, tamanho=180, cor='0xFF0000', opacidade=30, nome='grupo_de_pontos')
inserePonto(x=190, y=100, tamanho=90, cor='0x0000FF', opacidade=30, nome='grupo_de_pontos')
alteraGrupoDePontos('grupo_de_pontos', [['visivel',true], ['cor','0xFF0000'],['tamanho',20],['opacidade',40]])
apagaGrupoDePontos('grupo_de_pontos')
inserePontoLongLat(long=-23.560022 , lat=-46.688643, tamanho=20, cor='0xFF0000', opacidade=30, nome='grupo_de_pontos')
coordenadas = [
[-9.128321, -70.305667], [-9.654903, -36.694884],
[-3.783865, -64.94969], [1.60032, -52.378036],
[-13.42796, -41.994208], [-5.321156, -39.343291],
[-15.776049, -47.797185], [-19.596027, -40.772473],
[-15.947269, -49.579063], [-5.652143, -45.275482],
[-18.577966, -45.45175]
];
insereLoteLongLat(coordenadas, tamanho=20, cor='0xFF0000', opacidade=30, nome='grupo_de_pontos')