Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 GoogleMaps在引导模式中的位置始终由地图大小、宽度和高度关闭_Javascript_Jquery_Twitter Bootstrap_Google Maps_Google Maps Markers - Fatal编程技术网

Javascript GoogleMaps在引导模式中的位置始终由地图大小、宽度和高度关闭

Javascript GoogleMaps在引导模式中的位置始终由地图大小、宽度和高度关闭,javascript,jquery,twitter-bootstrap,google-maps,google-maps-markers,Javascript,Jquery,Twitter Bootstrap,Google Maps,Google Maps Markers,首先,这里有一个JSFIDLE: 当我在modal中启动贴图时,它总是按窗口像素的大小(300x300)向下和向右关闭。如果你然后向上滚动到左边,你会看到标记在那里-基本上它没有像它应该的那样居中 坐标是正确的,如果在模态之外,它工作正常 我假设它与加载地图之前的div加载有关,然后它的定心错误,但我不明白为什么会这样。我试着在代码的末尾加上这个,但没有成功: $("#myModal").on("shown.bs.modal", function () { goog

首先,这里有一个JSFIDLE:

当我在modal中启动贴图时,它总是按窗口像素的大小(300x300)向下和向右关闭。如果你然后向上滚动到左边,你会看到标记在那里-基本上它没有像它应该的那样居中

坐标是正确的,如果在模态之外,它工作正常

我假设它与加载地图之前的div加载有关,然后它的定心错误,但我不明白为什么会这样。我试着在代码的末尾加上这个,但没有成功:

$("#myModal").on("shown.bs.modal", function () {
               google.maps.event.trigger(map, "resize");
});
知道我做错了什么吗

下面是它的外观:

以及它的错误:


请注意,坐标并不总是相同的,因此,如果有一种解决方案不需要坐标来重新居中地图(或首先加载适当的大小),则首选该解决方案。

您可以将中心点保存到变量中,并在模式触发时进行设置

map.setCenter(results[0].geometry.location);
      center = results[0].geometry.location;
然后


参见

我也有类似的问题,只是我的问题与多个点有关。在初始化映射后尝试启动此功能

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
map.fitBounds(new google.maps.LatLngBounds(
    new google.maps.LatLng(lat-50, lng-50),
    new google.maps.LatLng(lat+50, lng+50)
));

这里lat和lng是您的坐标。它所做的是根据给定的边界聚焦贴图。第一个参数是左下角,下一个参数是右上角

编辑缩放级别还是中心?
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
map.fitBounds(new google.maps.LatLngBounds(
    new google.maps.LatLng(lat-50, lng-50),
    new google.maps.LatLng(lat+50, lng+50)
));