地图API中有许多help来电,其中blank白色div为undesirable。在我看来,这是可取的。
我知道如何制作地图。
map.setCenter(new google.maps.LatLng(latitude, longitude));
我知道如何制作路线。
directionsService.route(request, function(result, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
偶尔我只想将地图元素转为"变为白色。" 稍后我想将地图或路线放回去。
我试过这个:
$('#map').empty();
它有效,但在那之后我再也不能让地图出现了。什么是正确的方法?
我想我可以创建和删除地图实例,但this bug report表示每个被破坏的地图实例都会泄漏2MB内存,Google正式不鼓励这种做法(here和here)。我真的不是覆盖一个白色矩形,或者让地图显示:无。是否没有更好的方式?
(我的应用程序是地址输入表单旁边的地图。如果输入了足够的详细信息,则会自动显示地图。如果删除字段内容,则地图会再次变为空白。)
答案 0 :(得分:0)
将地图visibility
设置为hidden
。
更好的是,使用课程。
CSS:
.map-hide {
visibility: hidden;
}
jQuery的:
$('#map').addClass('map-hide');
$('#map').removeClass('map-hide');
JavaScript(IE10+):
document.getElementById("map").classList.add('map-hide');
document.getElementById("map").classList.remove('map-hide');
添加该类以使地图空白。渲染地图时将其删除。
如果代码的多个部分因不同原因打开或关闭可见性,则添加和删除类会更好。
将地图的可见性设置为隐藏优于将其显示设置为无,这可能会永久破坏地图渲染。我在docs中看到了关于Map.fitBounds()破解的一个线索。