1 votos

¿Cómo colocar controles de botones personalizados en la API de Google Maps?

Tengo este sencillo mapa construido en Google Maps APi v3 ....

<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>
      var map;
      function initMap() {

      var myOptions = {
          zoom: 8,
          center: {lat: -34.397, lng: 150.644},
          mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      var map = new google.maps.Map(document.getElementById("map"), myOptions);

      //### Add a button on Google Maps ...
      var controlMarkerUI = document.createElement('DIV');
      controlMarkerUI.style.cursor = 'pointer';
      controlMarkerUI.style.backgroundImage = "url(http://localhost/marker.png)";
      controlMarkerUI.style.height = '28px';
      controlMarkerUI.style.width = '25px';
      controlMarkerUI.style.top = '11px';
      controlMarkerUI.style.left = '120px';
      controlMarkerUI.title = 'Click to set the map to Home';
      //myLocationControlDiv.appendChild(controlUI);

      map.controls[google.maps.ControlPosition.LEFT_TOP].push(controlMarkerUI);

      //### Add a button on Google Maps ...
      var controlTrashUI = document.createElement('DIV');
      controlTrashUI.style.cursor = 'pointer';
      controlTrashUI.style.backgroundImage = "url(http://localhost/trash.png)";
      controlTrashUI.style.height = '28px';
      controlTrashUI.style.width = '25px';
      controlTrashUI.style.top = '11px';
      controlTrashUI.style.left = '150px';
      controlTrashUI.title = 'Click to set the map to Home';
      //myLocationControlDiv.appendChild(controlUI);

      map.controls[google.maps.ControlPosition.LEFT_TOP].push(controlTrashUI);
}

    </script>
    <script src="https://maps.googleapis.com/maps/api/js?key=<PUT_YOUR_API-HERE>&callback=initMap"
    async defer></script>
  </body>
</html>

El resultado del mapa es el siguiente

enter image description here

En mi código, los estilos de los dos botones, marcador y basura, están configurados de manera que deberían dejar de lado el botón "Satélite" de esta manera

enter image description here

¿Por qué no se conservan mis ajustes de estilo?

¿Sugerencias / ejemplos?

2voto

Matthew Glidden Puntos 108

https://developers.google.com/maps/documentation/javascript/3.exp/reference#ControlPosition

map.controls[google.maps.ControlPosition.TOP_LEFT].push(controlTrashUI);

0voto

faya Puntos 1090

Display:inline-block float:left

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X