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
Para realizar o comando de zoom total deveremos “guardar” o primeiro extent existente no momento que nosso objeto mapa foi criado.
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.height / 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