【发布时间】:2020-05-01 16:07:34
【问题描述】:
拥有一个应用程序,其中包含许多使用 Ajax 更新的选项卡。每个选项卡可能包含不同的地图(实际上是许多地图,但考虑到一张地图可以更容易地描述问题)。问题是每次我切换到另一个选项卡时,我在那里的地图似乎丢失了,因为当我稍后返回该选项卡时,地图消失了,我不得不再次请求它。问题减少到用“new google.maps.Map(...)”得到的地图更新对应的id
简单地说,我想知道如何以其他 ID 呈现 Google 地图?我的意思是这样的:
myMap = new google.maps.Map(document.getElementById('id1'), mapOpt);
renderGoogleMap(myMap, 'id2')
作为示例,我根据 Google 的教程代码展示下面的代码,其中我添加了一个新函数 (renderMap()),该函数在第一个 ID 上的地图渲染后触发。我想知道的是如何实现 renderMap 函数,以便它渲染存储在“map1”id 上的 gmap 变量中的地图。
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
#map {
width: 360px;
height: 240px;
background-color: grey;
}
#map1 {
width: 360px;
height: 240px;
background-color: grey;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<div id="map1"></div>
<script>
var gmap;
function renderMap() {
// renders the GoogleMap "gmap" on ’map1’ id
}
function initMap() {
gmap = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
renderMap();
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=myKey&callback=initMap"
async defer></script>
</body>
</html>
【问题讨论】:
标签: google-maps render