重新调整大小并重新定位谷歌地图而无需访问全局变量" map"

时间:2015-05-12 03:52:51

标签: javascript jquery google-maps

我在我的页面上实现了谷歌地图,我希望能够在特定事件之后调整大小并重新定位它。这是我在互联网上找到的代码:

I = imread('iris.jpg');
Gray = rgb2gray(I);

n = size(I);
M = n(1);
N = n(2);
MSE = sum(sum(bsxfun(@minus, I, Gray).^2))/(M*N); %// Change
fprintf('\nMSE:%7.2f',MSE);

现在这很酷但我无法访问"地图"全球。相反,我已经能够使用jquery选择器来获取map-canvas DOM,如下所示:

var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);

但是当我尝试调用getCenter()和setCenter()时,使用google.maps.event.trigger($("#map-canvas")[0], 'resize'); 不起作用。有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:1)

您的地图变量是Google地图对象的一个​​实例,但您的.page { overflow: hidden; min-height: 100vh; .sidebar { @media only screen and (min-width: 400px) { position: fixed; } } } 是一个DOM元素,因此您无法调用任何方法,因为谷歌不会识别它。

在您的情况下,它可能只是一个范围问题

为什么不把你的地图变量放在全局并在任何地方调用它,例如:

$("#map-canvas")[0]

然后,每当您致电var map; // my google map object $(document).ready(function(){ var center = map.getCenter(); google.maps.event.trigger(map, "resize"); map.setCenter(center); }); 时,它都会返回该值(仅当您已经创建了Google对象时),