我正在使用谷歌地图如下:
$('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 1000; i++) {
var contentString = 'load';
$(this).gmap('addMarker',
{ 'position': new google.maps.LatLng(
southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random()),
'content': contentString
}
).click(function (i) {
$('#map_canvas').gmap('openInfoWindow', {
content: this.content
}, this);
});
}
$(this).gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
});
}).load();
在加载时它是好的,但是当我例如再次调用下面的函数maptest()时,例如单击一个按钮,地图根本不会改变,即使我取消绑定地图并再次绑定它但没有效果:< / p>
function maptest(){
demo.add(function () {
$('#map_canvas').unbind("init");
$('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 1000; i++) {
var contentString = 'test';
$(this).gmap('addMarker',
{ 'position': new google.maps.LatLng(
southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random()),
'content': contentString
}
).click(function (i) {
$('#map_canvas').gmap('openInfoWindow', {
content: this.content
}, this);
});
}
$(this).gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
});
}).load();
}
更新:当我使用$('#map_canvas')。gmap('destroy')。gmap ...而不是地图重新加载,但我得到报警框,其中sais:由于任何一个穷人无法加载互联网连接或某些cdn没有像我们希望的那样响应......
请帮助我这么困惑?我的代码出了什么问题?
答案 0 :(得分:0)
它可能以这种方式起作用:
$('#map_canvas').gmap('destroy');
$('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {