我有一个SPA,有多个页面,其中一个是MapPage。通过打开MapPage,我正在实例化普通地图:
map = new H.Map(document.getElementById('map-container'), defaultLayers.vector.normal.map, {..});
这是问题。通过转到其他页面,我失去了'map-container'
html元素和domMarkers。
是否有重用'map-container'
html的方法,或者每次都必须实例化新的map
对象?还是可以选择重画地图画布?
是的,可以。实际上,实现这一目标的方法并不多,您必须将地图容器保存在DOM中,并保留对地图对象的引用,否则它们将被垃圾收集器释放。
更多的是单页应用程序问题,而不是HERE特有的问题,例如仅加载导航栏一次。
这也意味着您必须在不希望显示地图的页面上隐藏(display: none;
)地图。