Google Maps: marcadores

Podemos dibujar objetos en el mapa y vincularlos a la latitud y longitud deseadas. Estos se llaman superposiciones. Google Maps proporciona varias superposiciones como se muestra a continuación.

  • Markers
  • Polylines
  • Polygons
  • Círculo y rectángulo
  • Ventana de información
  • Symbols

Para marcar una única ubicación en el mapa, Google Maps proporciona markers. Estos marcadores utilizan un símbolo estándar y estos símbolos se pueden personalizar. Este capítulo explica cómo agregar marcadores y cómo personalizarlos, animarlos y eliminarlos.

Agregar un marcador simple

Puede agregar un marcador simple al mapa en una ubicación deseada creando una instancia de la clase de marcador y especificando la posición que se marcará usando latlng, como se muestra a continuación.

var marker = new google.maps.Marker({
   position: new google.maps.LatLng(19.373341, 78.662109),
   map: map,
});

Ejemplo

El siguiente código establece el marcador en la ciudad de Hyderabad (India).

<!DOCTYPE html>
<html>
   
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      
      <script>
         function loadMap() {
			
            var mapOptions = {
               center:new google.maps.LatLng(19.373341, 78.662109),
               zoom:7
            }
				
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.088291, 78.442383),
               map: map,
            });
         }
      </script>
      
   </head>
   
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
   
</html>

Produce la siguiente salida:

Animando el marcador

Después de agregar un marcador al mapa, puede ir más allá y agregarle animaciones como bounce y drop. El siguiente fragmento de código muestra cómo agregar animaciones de rebote y soltar a un marcador.

//To make the marker bounce`
animation:google.maps.Animation.BOUNCE 

//To make the marker drop
animation:google.maps.Animation.Drop

Ejemplo

El siguiente código establece el marcador en la ciudad de Hyderabad con un efecto de animación adicional:

<!DOCTYPE html>
<html>
   
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      
      <script>
         function loadMap() {
			
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
				
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               animation:google.maps.Animation.Drop
            });
         }
      </script>

   </head>
   
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
   
</html>

Produce la siguiente salida:

Personalización del marcador

Puede utilizar sus propios iconos en lugar del icono predeterminado proporcionado por Google Maps. Simplemente configure el icono comoicon:'ICON PATH'. Y puede hacer que este icono se pueda arrastrar configurandodraggable:true.

Ejemplo

El siguiente ejemplo muestra cómo personalizar el marcador a un icono deseado:

<!DOCTYPE html>
<html>
   
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      
      <script>
         function loadMap() {
			
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
            
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               draggable:true,
               icon:'/scripts/img/logo-footer.png'
            });
				
            marker.setMap(map);
         }
      </script>
      
   </head>
   
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
   
</html>

Produce la siguiente salida:

Quitar el marcador

Puede eliminar un marcador existente configurando el marcador como nulo utilizando el marker.setMap() método.

Ejemplo

El siguiente ejemplo muestra cómo eliminar el marcador de un mapa:

<!DOCTYPE html>
<html>
   
   <head>
      <script src = "https://maps.googleapis.com/maps/api/js"></script>
      
      <script>
         function loadMap() {
			
            var mapOptions = {
               center:new google.maps.LatLng(17.377631, 78.478603),
               zoom:5
            }
            
            var map = new google.maps.Map(document.getElementById("sample"),mapOptions);
            
            var marker = new google.maps.Marker({
               position: new google.maps.LatLng(17.377631, 78.478603),
               map: map,
               animation:google.maps.Animation.Drop
            });
				
            marker.setMap(null);
         }
      </script>
      
   </head>
   
   <body onload = "loadMap()">
      <div id = "sample" style = "width:580px; height:400px;"></div>
   </body>
   
</html>

Produce la siguiente salida: