Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌地图不会以引导模式加载_Php_Google Maps_Bootstrap Modal_Advanced Custom Fields - Fatal编程技术网

Php 谷歌地图不会以引导模式加载

Php 谷歌地图不会以引导模式加载,php,google-maps,bootstrap-modal,advanced-custom-fields,Php,Google Maps,Bootstrap Modal,Advanced Custom Fields,我是新来的。我是法国人,我用谷歌翻译来翻译这篇文章 我在引导模式(引导版本3.3.7)中初始化Google地图时遇到问题 我已经讨论过主题和论坛,但没有解决方案 打开模式(单击按钮)时,贴图将显示在灰色框中,但不会加载 当我更改浏览器的大小时,它将加载但不居中 如何直接加载地图 地图正在加载ACF插件,下面是我的代码: <style type="text/css"> .acf-map { width: 100%; height: 400px; border: #ccc

我是新来的。我是法国人,我用谷歌翻译来翻译这篇文章

我在引导模式(引导版本3.3.7)中初始化Google地图时遇到问题

我已经讨论过主题和论坛,但没有解决方案

打开模式(单击按钮)时,贴图将显示在灰色框中,但不会加载

当我更改浏览器的大小时,它将加载但不居中

如何直接加载地图

地图正在加载ACF插件,下面是我的代码:

<style type="text/css">

.acf-map {
  width: 100%;
  height: 400px;
  border: #ccc solid 1px;
  margin: 20px 0;
}

/* fixes potential theme css conflict */
.acf-map img {
   max-width: inherit !important;
}

</style>


<script src="https://maps.googleapis.com/maps/api/js?key=#####"></script>
<script type="text/javascript">

(function($) {

// popup is shown and map is not visible

/*
*  new_map
*
*  This function will render a Google Map onto the selected jQuery element
*
*  @type  function
*  @date  8/11/2013
*  @since 4.3.0
*
*  @param $el (jQuery element)
*  @return  n/a
*/

function new_map( $el ) {

  // var
  var $markers = $el.find('.marker');


  // vars
  var args = {
    zoom    : 16,
    center    : new google.maps.LatLng(0, 0),
    mapTypeId : google.maps.MapTypeId.ROADMAP
  };


  // create map           
  var map = new google.maps.Map( $el[0], args);


  // add a markers reference
  map.markers = [];


  // add markers
  $markers.each(function(){

      add_marker( $(this), map );

  });


  // center map
  center_map( map );


  // return
  return map;

}

/*
*  add_marker
*
*  This function will add a marker to the selected Google Map
*
*  @type  function
*  @date  8/11/2013
*  @since 4.3.0
*
*  @param $marker (jQuery element)
*  @param map (Google Map object)
*  @return  n/a
*/

function add_marker( $marker, map ) {

  // var
  var latlng = new google.maps.LatLng( $marker.attr('data-lat'), $marker.attr('data-lng') );

  // create marker
  var marker = new google.maps.Marker({
    position  : latlng,
    map     : map
  });

  // add to array
  map.markers.push( marker );

  // if marker contains HTML, add it to an infoWindow
  if( $marker.html() )
  {
    // create info window
    var infowindow = new google.maps.InfoWindow({
      content   : $marker.html()
    });

    // show info window when marker is clicked
    google.maps.event.addListener(marker, 'click', function() {

      infowindow.open( map, marker );

    });
  }

}

/*
*  center_map
*
*  This function will center the map, showing all markers attached to this map
*
*  @type  function
*  @date  8/11/2013
*  @since 4.3.0
*
*  @param map (Google Map object)
*  @return  n/a
*/

function center_map( map ) {

  // vars
  var bounds = new google.maps.LatLngBounds();

  // loop through all markers and create bounds
  $.each( map.markers, function( i, marker ){

    var latlng = new google.maps.LatLng( marker.position.lat(), marker.position.lng() );

    bounds.extend( latlng );

  });

  // only 1 marker?
  if( map.markers.length == 1 )
  {
    // set center of map
      map.setCenter( bounds.getCenter() );
      map.setZoom( 16 );
  }
  else
  {
    // fit to bounds
    map.fitBounds( bounds );
  }
}

/*
*  document ready
*
*  This function will render each map when the document is ready (page has loaded)
*
*  @type  function
*  @date  8/11/2013
*  @since 5.0.0
*
*  @param n/a
*  @return  n/a
*/
// global var
var map = null;

$(document).ready(function(){

  $('.acf-map').each(function(){

    // create map
    map = new_map( $(this) );

    // popup is shown and map is not visible
    google.maps.event.trigger(map, 'resize');

  });



});

})(jQuery);

</script>

.acf地图{
宽度:100%;
高度:400px;
边框:#ccc实心1px;
利润率:20px0;
}
/*修复潜在的主题css冲突*/
.acf地图img{
最大宽度:继承!重要;
}
(函数($){
//弹出窗口显示,地图不可见
/*
*新地图
*
*此函数将在所选jQuery元素上呈现Google地图
*
*@type函数
*@date 8/11/2013
*@自4.3.0以来
*
*@param$el(jQuery元素)
*@return不适用
*/
功能新地图($el){
//变量
var$markers=$el.find('.marker');
//瓦尔斯
变量args={
缩放:16,
中心:新google.maps.LatLng(0,0),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
//创建地图
var map=new google.maps.map($el[0],args);
//添加标记引用
map.markers=[];
//添加标记
$markers.each(函数(){
添加_标记($(此),映射);
});
//中心地图
中心地图(地图);
//返回
返回图;
}
/*
*添加标记
*
*此功能将向选定的Google地图添加标记
*
*@type函数
*@date 8/11/2013
*@自4.3.0以来
*
*@param$marker(jQuery元素)
*@param-map(谷歌地图对象)
*@return不适用
*/
函数add_marker($marker,map){
//变量
var latlng=new google.maps.latlng($marker.attr('data-lat'),$marker.attr('data-lng');
//创建标记
var marker=new google.maps.marker({
位置:latlng,
地图:地图
});
//添加到数组
map.markers.push(marker);
//如果标记包含HTML,则将其添加到信息窗口
如果($marker.html())
{
//创建信息窗口
var infowindow=new google.maps.infowindow({
内容:$marker.html()
});
//单击标记时显示信息窗口
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
}
/*
*中心地图
*
*此功能将使地图居中,显示附加到此地图的所有标记
*
*@type函数
*@date 8/11/2013
*@自4.3.0以来
*
*@param-map(谷歌地图对象)
*@return不适用
*/
功能中心地图(地图){
//瓦尔斯
var bounds=new google.maps.LatLngBounds();
//循环遍历所有标记并创建边界
$.each(map.markers,function(i,marker){
var latlng=new google.maps.latlng(marker.position.lat(),marker.position.lng());
边界扩展(latlng);
});
//只有一个标记?
如果(map.markers.length==1)
{
//设置地图中心
map.setCenter(bounds.getCenter());
map.setZoom(16);
}
其他的
{
//合拍
映射边界(bounds);
}
}
/*
*文件准备就绪
*
*此函数将在文档准备就绪(页面已加载)时呈现每个地图
*
*@type函数
*@date 8/11/2013
*@自5.0.0以来
*
*@param不适用
*@return不适用
*/
//全局变量
var-map=null;
$(文档).ready(函数(){
$('.acf map')。每个(函数(){
//创建地图
map=new_map($(this));
//弹出窗口显示,地图不可见
google.maps.event.trigger(映射,'resize');
});
});
})(jQuery);
以及模态引导的集成:

<!-- MAPS -->

<div class="col-md-6 txtmap">


    <div class="animated fadeInRightShort" data-id='4'>
        <button type="button" class="button button-icon btnprogramme big" data-toggle="modal" data-target="#gmaps">
          <i class="fa fa-map-marker"></i>Google Maps</a>
        </button>
    </div>

</div>




<!-- MODAL MAPS -->

<div class="modal fade" id="gmaps" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel"><?php the_title(); ?> <span>- Google Maps</span></h4>
      </div>
      <div class="modal-body">

            <?php 

            $location = get_field('programme-maps');

            if( !empty($location) ):
            ?>
            <div class="acf-map">
            <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
            </div>
            <?php endif; ?>

      </div>
      <div class="modal-footer">
        <button type="button" class="button alt" data-dismiss="modal">Fermer</button>
      </div>
    </div>
  </div>
</div>

谷歌地图
&时代;
-谷歌地图
谢谢你的回答。
我看了看代码笔,我试图根据我的情况调整它,但没有成功。结果是一样的

以下是结果的屏幕截图:

如果修改浏览器的窗口,则会显示贴图(但未居中)

当我查看ACF文档时,他告诉我插入此代码。但我不知道在哪里

解决隐藏地图问题

如果在服务器上初始化,Google map API将无法正常工作 隐藏元素。显示元素时,地图将不显示。 使用弹出模式时最有可能出现这种情况

要解决此问题,只需在地图上触发“调整大小”事件 映射元素后的变量是可见的


非常感谢你的帮助

模态是否与查询所在的页面相同?谢谢您的回答。是的,模态与jquery位于同一个文件中。jquery位于我的php文件的末尾。我不知道问题来自哪里。。。
// popup is shown and map is not visible
google.maps.event.trigger(map, 'resize');