将地图元素设为空白,消失(Google Maps JavaScript API,v3)

时间:2017-08-10 22:50:58

标签: google-maps google-maps-api-3 google-javascript-api

地图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正式不鼓励这种做法(herehere)。我真的不是覆盖一个白色矩形,或者让地图显示:无。是否没有更好的方式?

(我的应用程序是地址输入表单旁边的地图。如果输入了足够的详细信息,则会自动显示地图。如果删除字段内容,则地图会再次变为空白。)

1 个答案:

答案 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()破解的一个线索。