Advertisement
contatowellington

Untitled

Oct 16th, 2017
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  2.  
  3. // Evento que detecta o click no mapa para criar o marcador
  4. google.maps.event.addListener(map, "click", function(event) {
  5.  
  6. // O evento "click" retorna a posição do click no mapa,
  7. // através dos métodos latLng.lat() e latLng.lng().
  8.  
  9. // Passamos as respectivas coordenadas para as variáveis lat e lng
  10. // para posterior referência.
  11. // Utilizamos o método toFixed(6) para limitar o número de casas decimais.
  12. // A API ignora os valores além da 6ª casa decimal
  13. var lat = event.latLng.lat().toFixed(6);
  14. var lng = event.latLng.lng().toFixed(6);
  15.  
  16. // A criação do marcador é feita na função createMarker() e
  17. // passamos os valores das coordenadas do click através
  18. // dos parâmetros lat e lng.
  19. createMarker(lat, lng);
  20.  
  21. // getCoords() actualiza os valores de Latitue e Longitude
  22. // das caixas de texto existentes no topo da página
  23. getCoords(lat, lng);
  24.  
  25. });
  26.  
  27.  
  28. }
  29. google.maps.event.addDomListener(window, 'load', initialize);
  30.  
  31. // Função que cria o marcador
  32. function createMarker(lat, lng) {
  33.  
  34. // A intenção é criar um único marcador, por isso
  35. // verificamos se já existe um marcador no mapa.
  36. // Assim cada vez que é feito um click no mapa
  37. // o anterior marcador é removido e é criado outro novo.
  38.  
  39. // Se a variável marker contém algum valor
  40. if (marker) {
  41. // remover esse marcador do mapa
  42. marker.setMap(null);
  43. // remover qualquer valor da variável marker
  44. marker = "";
  45. }
  46.  
  47. // definir a variável marker com os novos valores
  48. marker = new google.maps.Marker({
  49.  
  50. // Define a posição do marcador através dos valores lat e lng
  51. // que foram definidos através do click no mapa
  52. position: new google.maps.LatLng(lat, lng),
  53.  
  54. // Esta opção permite que o marcador possa ser arrastado
  55. // para um posicionamento com maior precisão.
  56. draggable: true,
  57.  
  58. map: map
  59. });
  60.  
  61.  
  62. // Evento que detecta o arrastar do marcador para
  63. // redefinir as coordenadas lat e lng e
  64. // actualiza os valores das caixas de texto no topo da página
  65. google.maps.event.addListener(marker, 'dragend', function() {
  66.  
  67. // Actualiza as coordenadas de posição do marcador no mapa
  68. marker.position = marker.getPosition();
  69.  
  70. // Redefine as variáveis lat e lng para actualizar
  71. // os valores das caixas de texto no topo
  72. var lat = marker.position.lat().toFixed(6);
  73. var lng = marker.position.lng().toFixed(6);
  74.  
  75. // Chamada da função que actualiza os valores das caixas de texto
  76. getCoords(lat, lng);
  77.  
  78. });
  79. }
  80.  
  81. // Função que actualiza as caixas de texto no topo da página
  82. function getCoords(lat, lng) {
  83.  
  84. // Referência ao elemento HTML (input) com o id 'lat'
  85. var coords_lat = document.getElementById('lat');
  86.  
  87. // Actualiza o valor do input 'lat'
  88. coords_lat.value = lat;
  89.  
  90. // Referência ao elemento HTML (input) com o id 'lng'
  91. var coords_lng = document.getElementById('lng');
  92.  
  93. // Actualiza o valor do input 'lng'
  94. coords_lng.value = lng;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement