Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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
Javascript 关闭模式时位置标记消失_Javascript_Jquery - Fatal编程技术网

Javascript 关闭模式时位置标记消失

Javascript 关闭模式时位置标记消失,javascript,jquery,Javascript,Jquery,我不会说英语,为我的错误感到抱歉 我正在使用引导,jquery,螺旋桨 我有以下代码 var图,GeoMarker; 函数初始化(){ 变量映射选项={ 缩放:17, 中心:新google.maps.LatLng(-34.397150.644), mapTypeId:google.maps.mapTypeId.ROADMAP }; map=new google.maps.map(document.getElementById('map_canvas'), 地图选项); GeoMarker=新

我不会说英语,为我的错误感到抱歉

我正在使用引导jquery螺旋桨

我有以下代码

var图,GeoMarker;
函数初始化(){
变量映射选项={
缩放:17,
中心:新google.maps.LatLng(-34.397150.644),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map_canvas'),
地图选项);
GeoMarker=新的GeolocationMarker();
GeoMarker.setCircleOptions({fillColor:'#808080'});
google.maps.event.addListenerOnce(GeoMarker,'position_changed',function(){
map.setCenter(this.getPosition());
map.fitBounds(this.getBounds());
});
google.maps.event.addListener(GeoMarker,'geolocation_error',函数(e){
警报('获取您的位置时出错。消息:'+e.Message);
});
GeoMarker.setMap(地图);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
如果(!navigator.geolocation){
警报(“您的浏览器不支持地理位置”);
}

地理定位标记示例用法
html,正文,#地图#画布{
保证金:0;
填充:0;
身高:100%;
}
大模态
×
$(“#大型对话框”).on('show.bs.modal',函数(e){
初始化();
}); 

打开模式后,您需要初始化映射,因为映射将只加载可见元素

$('#large-dialog').on('shown.bs.modal', function (e) {
  initialize();
});

您需要绑定事件
show.bs.modal
以执行
初始化
功能:

$('#large-dialog').on('shown.bs.modal', function(e) {...}
并将div的尺寸更改为固定的尺寸。对于这个例子,我将设置为300px 300px

var图,GeoMarker;
函数初始化(){
变量映射选项={
缩放:17,
中心:新google.maps.LatLng(-34.397150.644),
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map_canvas'),
地图选项);
GeoMarker=新的GeolocationMarker();
GeoMarker.setCircleOptions({
填充颜色:'#808080'
});
google.maps.event.addListenerOnce(GeoMarker,'position_changed',function(){
map.setCenter(this.getPosition());
map.fitBounds(this.getBounds());
});
google.maps.event.addListener(GeoMarker,'geolocation_error',函数(e){
警报('获取您的位置时出错。消息:'+e.Message);
});
GeoMarker.setMap(地图);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
如果(!navigator.geolocation){
警报(“您的浏览器不支持地理位置”);
}
$(“#大型对话框”).on('show.bs.modal',函数(e){
初始化();
});
html,
身体,
#地图画布{
保证金:0;
填充:0;
高度:300px;
宽度:300px
}

大模态
×

谢谢,这帮我解决了一个类似的问题!Google maps文档没有声明div需要可见。欢迎steve-别忘了,加载时不需要
initialize()
。在OP的示例中,他们应该删除
google.maps.event.addDomListener(窗口“加载”,初始化)它工作了,但是发生了一个错误,脚本显示了我的位置,现在如果我关闭模式并重新打开地理定位根本不起作用另一个细节,如果我转到另一个选项卡并将位置返回到工作状态,我将在这段代码中测试,并且在您的场景中工作得很好。关闭/打开,一切正常。如果关闭并重新打开,该位置是否适用于您的地址?绝对不是我的位置,因为您的代码中直接有坐标。此错误可能是什么?我注意到,通过转到浏览器中的另一个选项卡,然后返回地理位置以正确标记我的家