Google地图标记未显示在bootstrap模式中

时间:2017-11-22 06:43:12

标签: javascript php jquery google-maps google-maps-api-3

google地图标记未显示在bootstrap模式中。

这是我的jquery代码:

function map_init() {
  if(!$('body').data('map')){
      var var_mapoptions = {
          zoom: 6,
          mapTypeControl: true,
          mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
            mapTypeIds: ['roadmap', 'terrain']
          }
        };
    $('body').data('map',new google.maps.Map($('<div id="map"/>')[0],
            var_mapoptions));

    }
    return  $('body').data('map');
  }
  var Lat;
  var lon;
  $(document).on('click','a[data-map]',function(){
    var data=$(this).data('map'),
        map=map_init();

        var geocoder = new google.maps.Geocoder();
        var address = data;

        geocoder.geocode( { 'address': address}, function(results, status) {

          if (status == google.maps.GeocoderStatus.OK) {
            var latitude = results[0].geometry.location.lat();
            var longitude = results[0].geometry.location.lng();
          } 
           Lat = latitude;
           lon = longitude;
         }); 
    $('#map_modal')
      .find('.modal-body')
        .append(map.getDiv())
      .end()
      .find('.modal-title')
        .text(data.Name)
      .end()
      .one('shown.bs.modal',function(){
            google.maps.event.trigger(map, "resize");
                map.setCenter({lat:Lat,lng:lon});
                });
            })
      .modal('show');
  });

enter image description here

它显示模态,但没有显示地图标记。纬度和经度值来自php代码(来自while循环值)。

1 个答案:

答案 0 :(得分:0)

我相信你没有创建任何 Google Maps Javascript API Markers 对象。

  

标记用于标识地图上的位置。默认情况下,标记使用a   标准图像。标记可以显示自定义图像,在这种情况下它们   通常被称为&#34;图标。&#34;

我建议编辑并在此行中添加此代码:

if ( status == google.maps.GeocoderStatus.OK ) {
  //add marker code here
}

要添加的代码:

var marker =  new google.maps.Marker({
   positions : new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng() ),
   map: map,
   title: 'I am a marker :)'
});

你的标记会出现。