Я хочу динамически отображать несколько карт Google без необходимости вводить следующее:
<div id="map"></div>
<div id="map1"></div>
<div id="map2"></div>
В своем коде ниже я жестко закодировал json и включил 3 объекта широты и долготы.Я сделал цикл, чтобы отобразить 3 карты, когда я повторил 3 объекта.Тем не менее, он показал только 1 карту вместо.Может ли кто-нибудь помочь мне с этой проблемой?Заранее спасибо.
#map {
height: 300px;
width: 500px;
margin: 0px;
padding: 0px
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="map"></div>
<script>
//hardcoded json
var json = [{
lat: 51.143183,
lng: 0.915349
}, {
lat: 51.261797,
lng: 1.087446
}, {
lat: 51.286869,
lng: 0.556317
}];
var obj, map, uluru, marker, text = "";
//init map function
function initMap() {
for (var i in json) {
obj = json[i];
//txt = "<div id='map'></div>"
console.log(obj.lat + " " + obj.lng);
uluru = {
lat: parseFloat(obj.lat),
lng: parseFloat(obj.lng)
};
map = new google.maps.Map(document.getElementById('map'), {
center: {
lat: parseFloat(obj.lat),
lng: parseFloat(obj.lng)
},
zoom: 15
});
marker = new google.maps.Marker({
position: uluru,
map: map
});
}
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDqKWHQOwdndu3GbTZfxb2HdMS4wDrpBv4&callback=initMap">
</script>
</body>
</html>