-1

The code below is used for displaying locations on google maps on my website.It works fine on the desktop view but for responsive doesn't help.Kindly help me adjust the zoom and size and make it responsive. I have attached the images for reference.

There are four markers on the map. 3 are clusters and one is a normal marker. kindly help me to adjust the view so that all my markers are visible in one frame. Also it would be very helpful if you can help me with smooth zoom when clicked on the marker.

Thank You.

SCREENSHOT FOR DESKTOP VIEW

desk view

function initMap() {

  // Create a new StyledMapType object, passing it an array of styles,
  // and the name to be displayed on the map type control.
  var styledMapType = new google.maps.StyledMapType(

[
  {
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#f5f5f5"
      }
    ]
  },
  {
    "elementType": "labels.icon",
    "stylers": [
      {
        "visibility": "off"
      }
    ]
  },
  {
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#616161"
      }
    ]
  },
  {
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "color": "#f5f5f5"
      }
    ]
  },
  {
    "featureType": "administrative.land_parcel",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#bdbdbd"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#eeeeee"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#757575"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#e5e5e5"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9e9e9e"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#ffffff"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#757575"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#dadada"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#616161"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9e9e9e"
      }
    ]
  },
  {
    "featureType": "transit.line",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#e5e5e5"
      }
    ]
  },
  {
    "featureType": "transit.station",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#eeeeee"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#c9c9c9"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9e9e9e"
      }
    ]
  }
],
      {name: 'Styled Map'});
function initialize() {

var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

// Resize stuff...
google.maps.event.addDomListener(window, "resize", function() {
   var center = map.getCenter();
   google.maps.event.trigger(map, "resize");
   map.setCenter(center); 
});

  // Create a map object, and include the MapTypeId to add
  // to the map type control.

    var myLatlng = {lat: 29.687978, lng: 0.00};

  var map = new google.maps.Map(document.getElementById('map'), {
    center: myLatlng,
    zoom: 3,
    mapTypeControlOptions: {
      mapTypeIds: ['roadmap', 'satellite', 'hybrid', 'terrain',
              'styled_map']
    }
  });

    var marker = locations.map(function(location, i) {
      return new google.maps.Marker({
      position: location,
      animation: google.maps.Animation.DROP,
      title: 'Click to zoom' 

    });

    marker.addListener('click', toggleBounce);
  });

  // Add a marker clusterer to manage the markers.
  var markerCluster = new MarkerClusterer(map, marker,
      {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});

  //Associate the styled map with the MapTypeId and set it to display.
   map.mapTypes.set('styled_map', styledMapType);
   map.setMapTypeId('styled_map');
   map.setOptions({ minZoom: 2, maxZoom: 15 });

}


var locations = [
  {lat: 19.013916, lng: 73.012211},
  {lat: 18.995356, lng: 72.838849},
  {lat: 42.365981, lng: -71.051223},
  {lat: 18.558610, lng: 73.883862},
]

function toggleBounce() {
  if (marker.getAnimation() !== null) {
    marker.setAnimation(null);
  } else {
    marker.setAnimation(google.maps.Animation.BOUNCE);
  }
}
/* 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: 400px;
  width: 100%;
  margin: 0;
  padding: 0;
}
div id="map"></div>


<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>
toha
  • 5,095
  • 4
  • 40
  • 52
  • It seems as if you're trying to add something to a tutorial you're doing/have been doing. Specifically [one of these](https://developers.google.com/maps/documentation/javascript/). You should try different things by yourself first, such as [trying a search](https://www.google.com/search?q=google+maps+api+responsive&oq=google+maps+api+responsive&aqs=chrome..69i57j0l5.6960j0j7&sourceid=chrome&ie=UTF-8) as there's a wealth of data already out there to do this. Then, read [How to Ask](https://stackoverflow.com/help/how-to-ask) followed by asking a question here. SO is not a study alternative... – rkeet Aug 28 '17 at 15:14
  • Possible duplicate of [How to make Google Maps Responsive?](https://stackoverflow.com/questions/34317386/how-to-make-google-maps-responsive) – rkeet Aug 28 '17 at 15:15

1 Answers1

0

This link will help you. stackoverflow/googlemap.resize

don't use images instant of map. map has resize function, call it in window.resize event.