我想将这个谷歌地图脚本放入一个js文件中,并将mapLocs数组作为html页面中脚本的参数传递给它。有谁知道怎么可能这样做?
function initialize(){
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 13,
center: new google.maps.LatLng(53.408103, -2.979595),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
setMarkers(map, mapLocs);
}
// To be passed in as a parameter?
var mapLocs = [
['Liverpool', 53.408103, -2.979595]
];
function setMarkers(map, locations){
for (var i = 0; i < locations.length; i++){
var places = locations[i];
var myLatLng = new google.maps.LatLng(places[1], places[2]);
var marker = new google.maps.Marker({
position: myLatLng,
draggable: false,
map: map,
title: places[0],
zIndex: places[3]
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:1)
您可以在加载数据后初始化地图:
google.maps.event.addDomListener(window, 'load', function(){
var locations = getLocations();
initializeMap(locations);
});
修改后的示例
function initialize(locations) {
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 13,
center: new google.maps.LatLng(53.408103, -2.979595),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
setMarkers(map, locations);
}
function setMarkers(map, locations) {
for (var i = 0; i < locations.length; i++) {
var places = locations[i];
var myLatLng = new google.maps.LatLng(places[1], places[2]);
var marker = new google.maps.Marker({
position: myLatLng,
draggable: false,
map: map,
title: places[0],
zIndex: places[3]
});
}
}
&#13;
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Map</title>
<style>
html, body, #map {
height: 100%;
margin: 0px;
padding: 0px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script src="map.js"></script>
</head>
<body>
<div id="map"></div>
<script>
google.maps.event.addDomListener(window, 'load', function () {
//1.load data
var mapLocs = [
['Liverpool', 53.408103, -2.979595]
];
//2.init map
initialize(mapLocs);
});
</script>
</body>
</html>
&#13;