Tutorial de JavaScript - Google Maps

Existem algumas ocasiões em que a página ou site precisa estender essa funcionalidade e o Google Maps não fornece isso. Nessas ocasiões, podemos usar Polymaps, Uma livraria Javascript gratuito e de código aberto com o qual podemos implementar mapas de qualquer tipo e funcionalidade em nosso site.

Polymaps é ideal para exibir informações em diferentes níveis de países, cidades e até mesmo ruas individuais, graças à sua tecnologia de Svg (Gráfico Vetorial Escalávels) que nada mais é do que um formato de imagem vetorial com base em XML que fornece suporte para a interação e animação de gráficos bidimensionais, já visto que vai um pouco Polymaps Vamos ver seus métodos, controles e alguns exemplos de sua implementação.

Instanciando polímapas
Cada Polymap começa com uma instância do método mapa (), mas antes de construir um mapa, importamos o namespace para uma variável local:
var po = org.polymaps;

O Polymaps não usa construtores Javascript tradicionais; nesse caso, o Polymaps nos fornece métodos que instanciam os métodos internamente. Além disso, ele usa o encadeamento de métodos, todos os métodos retornam a instância map (). Também podemos inserir em um novo documento SVG e, em seguida, adicionar uma tag à imagem:

 var map = po.map () .container (document.body.appendChild (po.svg ("svg"))) .add (po.image (). url (…)) 
Também não podemos enviar nada no método de recipiente e a instância do mapa retornará o valor associado ao campo e servirá como setter e getter:
 map.container ();
Camadas
Nos casos mais simples, os mapas têm uma única camada, mas podem consistir em várias camadas que são uma sobre a outra. Os parâmetros aceitos são os seguintes:
  • {X} - Coordenada da coluna.
  • {Y} - Coordenada de linha.
  • {B} - Caixa delimitadora.
  • {Z} - Nível de zoom.
  • {S} - Host.
Tendo visto o conceito geral, vamos ver os exemplos com seu código de implementação completo:

Pale Dawn
Este mapa tem um design restrito que funciona bem com toneladas de pontos de informação, é mais focado em destacar as informações de primeiro plano. Este mapa é construído com uma única camada, coordenadas e possui alguns controles interativos básicos, é um bom ponto de partida para começar a personalizá-lo:

Aqui está o código-fonte completo:

 var po = org.polymaps; var map = po.map () .container (document.getElementById ("map"). appendChild (po.svg ("svg"))) .add (po.interact ()) .add (po.hash ()); map.add (po.image () .url (po.url ("http: // {S} tile.cloudmade.com" + "/ 1a1b06b230af4efdbb989ea99e9841af" // http://cloudmade.com/register + "/ 998 /256/{Z concepts/[X surprise / [Y-lex.europa.eu.png.webp ") .hosts ([" a. "," B. "," C. "," "] ))); map.add (po.compass () .pan ("nenhum")); 
Agora vamos ver um exemplo muito mais completo

Grade de blocos


Neste exemplo temos diferentes tipos de zoom, bem como o gerenciamento de diferentes camadas, além disso podemos girar a área do mapa e assim poder ver outras áreas nele, vamos ver algumas capturas dele:

E, finalmente, o código-fonte para que você possa testá-lo por si mesmo:

 var po = org.polymaps; var div = document.getElementById ("map"), svg = div.appendChild (po.svg ("svg")), g = svg.appendChild (po.svg ("g")); var map = po.map () .container (g) .tileSize ({x: 128, y: 128}) .angle (.3) .add (po.interact ()) .on ("redimensionar", redimensionar); resize (); map.add (po.layer (grade)); var rect = g.appendChild (po.svg ("rect")); rect.setAttribute ("largura", "50%"); rect.setAttribute ("altura", "50%"); função resize () {if (resize.ignore) return; var x = div.clientWidth / 2, y = div.clientHeight / 2; g.setAttribute ("transformar", "traduzir (" + (x / 2) + "," + (y / 2) + ")"); resize.ignore = true; map.size ({x: x, y: y}); resize.ignore = false; } grade de função (bloco) {var g = tile.element = po.svg ("g"); var rect = g.appendChild (po.svg ("rect")), size = map.tileSize (); rect.setAttribute ("largura", tamanho.x); rect.setAttribute ("altura", tamanho.y); var text = g.appendChild (po.svg ("texto")); text.setAttribute ("x", 6); text.setAttribute ("y", 6); text.setAttribute ("dy", ".71em"); text.appendChild (document.createTextNode (tile.key)); } var spin = 0; setInterval (function () {if (spin) map.angle (map.angle () + spin);}, 30); tecla de função (e) {switch (e.keyCode) {case 65: spin = e.type == "keydown"? -,004: 0; quebrar; caso 68: spin = e.type == "keydown"? 0,004: 0; quebrar; }} window.addEventListener ("keydown", key, true); window.addEventListener ("keyup", chave, true); window.addEventListener ("resize", resize, false); 

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave