1. Introdução

Nesse novo post, vamos dar seqüência ao nosso projeto, partindo agora para a manipulação visual de nosso mapa, realizando as operações de zoom mais, zoom menos, os deslocamentos horizontais /verticais e claro o zoom total.

Estas manipulações podem ser implementadas de diversas formas, principalmente fazendo uso de artifícios, como javascript, para dar uma melhor interação, porem vamos fazer da maneira mais simples, fica a critério de vocês as implementações dessas “perfumarias” :)

2. Explicando

  • Zoom total

Para realizar o comando de zoom total deveremos “guardar” o primeiro extent existente no momento que nosso objeto mapa foi criado.

  • Demais controles

Todos os demais controles serão feitos através da função zoomPoint , dependendo de qual parâmetro nos passarmos será a alteração da posição do mapa.

Veja abaixo uma descrição dos parâmetros passados a essa função:

    • Fator de zoom = é o que tipo de zoom será feito, positivo zoom mais, negativo zoom menos. Existe uma exceção para o 0 (zero) que não serve como parâmetro e o 1 que serve apenas para um zoom estático.
    • Posição do zoom = esse parâmetro é de suma importância pois ele é posição há qual o mapa será centralizado, isto é, a imagem gerada terá essa posição como seu centro.
    • Tamanho horizontal = essa informação é em pixel.
    • Tamanho vertical = essa informação é em pixel.
    • Extent atual = atual extent do mapa.
    • Maximo extent = Maximo extent permitido, ignore esse parâmetro nesse momento não iremos nos atentar a ele.

Com a manipulação desses parâmetros conseguimos escrever os códigos abaixo, realizando assim as operações desejadas.

public void ZoomMais()
{
map.zoomPoint(2, new pointObj(Convert.ToInt32(map.width / 2), Convert.ToInt32(map.h
eight / 2), 0, 0), map.width, map.height, map.extent, null);
}

public void ZoomMenos()
{
map.zoomPoint(-2, new pointObj(Convert.ToInt32(map.width / 2), Convert.ToInt32(map.height / 2), 0, 0), map.width, map.height, map.extent, null);
}

public void MoverMapaParaCima()
{
map.zoomPoint(1, new pointObj(Convert.ToInt32(map.width / 2), Convert.ToInt32(map.height / 10) * 8, 0, 0), map.width, map.height, map.extent, null);
}

public void MoverMapaParaBaixo()
{
map.zoomPoint(1, new pointObj(Convert.ToInt32(map.width / 2), Convert.ToInt32(map.height / 10) * 2, 0, 0), map.width, map.height, map.extent, null);
}

public void MoverMapaParaDireita(){map.zoomPoint(1, new pointObj(Convert.ToInt32(map.width / 10) * 2, Convert.ToInt32(map.height / 2), 0, 0), map.width, map.height, map.extent, null);
}

public void MoverMapaParaEsquerda(){map.zoomPoint(1, new pointObj(Convert.ToInt32(map.width / 10) * 8, Convert.ToInt32(map.height / 2), 0, 0), map.width, map.height, map.extent, null);
}

Caso deseje realizar o download do código, clique aqui.

3. Finalizando

No próximo post será como criaremos consultas, isto é iremos localizar informações em nosso mapa.

Um abraço a todos.

Até mais.

Rafael Sussel Decleva