2
votes

I'm trying to add a Google Map to a jquery.mobile site javascript and the Google Maps API. The problem is that every time I load the map, most of the map is greyed out. I've done some research and apparently I must add the command:

google.maps.event.trigger(map, 'resize');

But I've been fiddling with this for the last few hours and I can't seem to make it work. This is the code I'm using:


      var myLatlng = new google.maps.LatLng(34.310774,66.225586);

      var mapOptions = {
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }

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

      // boundry
      var southWest = new google.maps.LatLng(31.207164,61.347656);
      var northEast = new google.maps.LatLng(37.617713,69.785156);
      var bounds = new google.maps.LatLngBounds(southWest,northEast);


      map.fitBounds(bounds);
      google.maps.event.trigger(map, 'resize');
2

2 Answers

4
votes

To solve that problem you need to:

  1. make sure the div where the map is displayed has a valid size, if it is hidden, it will have zero size and you will need to display the div before it will have a valid size. If it is sized using percentages, make sure that all of its parent elements either have a percent size or a specific size (see Mike Williams' Google Maps API v2 tutorial on the subject for details).

  2. once it has a size initialize the map (if you haven't already)

  3. if it was already initialized, trigger the resize event on it.

  4. You may need to set the center of the map after triggering the resize event.

You haven't provided enough information to see where you are going wrong.

0
votes

You should first get the Google Map Widget working before you start coding. You just need the Key ID, the latitude and longitude and use the app designer. The suggested zoom setting of 8 which comes up by default is adequate. Here are some details: http://hodentekmobile.blogspot.com/2016/07/intel-xdk-controls-6-using-google-map.html