Php 谷歌地图不会以引导模式加载
我是新来的。我是法国人,我用谷歌翻译来翻译这篇文章 我在引导模式(引导版本3.3.7)中初始化Google地图时遇到问题 我已经讨论过主题和论坛,但没有解决方案 打开模式(单击按钮)时,贴图将显示在灰色框中,但不会加载 当我更改浏览器的大小时,它将加载但不居中 如何直接加载地图 地图正在加载ACF插件,下面是我的代码: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
<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">×</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');