我有这个功能,谷歌地图api教程的默认功能,我刚添加了2个参数latt和lngg。
function initMap(latt,lngg) {
var uluru = {lat: latt , lng: lngg};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
我想把它称之为:
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAmjE35Pm1eDdyF6Vg3WC69opkqLIVt3GY&callback=initMap">
</script>
但每次都使用不同的参数,因为我将有6000张地图,我想为每个函数调用脚本
我不知道是否有类似&amp; callback = initMap(latt,lngg)的东西。
非常感谢
答案 0 :(得分:2)
您无法将参数添加到用作回调的函数中。您可以在全局范围或HTML中添加可在回调函数中使用的变量。
例如:
<div id="mapcoords" data-lat="40" data-lng="-117" data-zoom="5"></div>
function initMap() {
var uluru = {
lat: parseFloat(document.getElementById('mapcoords').getAttribute("data-lat")),
lng: parseFloat(document.getElementById('mapcoords').getAttribute("data-lng"))
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: parseInt(document.getElementById('mapcoords').getAttribute("data-zoom")),
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
代码段
function initMap() {
var uluru = {
lat: parseFloat(document.getElementById('mapcoords').getAttribute("data-lat")),
lng: parseFloat(document.getElementById('mapcoords').getAttribute("data-lng"))
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: parseInt(document.getElementById('mapcoords').getAttribute("data-zoom")),
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
&#13;
html,
body,
#map {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
&#13;
<div id="map"></div>
<div id="mapcoords" data-lat="40" data-lng="-117" data-zoom="5"></div>
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap"></script>
&#13;
答案 1 :(得分:2)
你可以有一个单独的脚本来设置变量,然后让initMap()调用这些变量。
var latt;
var lngg;
function setCoords(latt,lngg){
this.latt = latt;
this.lngg = lngg;
}
function initMap() {
var uluru = {lat: latt , lng: lngg};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
&#13;
<script type ='text/javascript'>setCoords(33.225488,-111.5955)</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAmjE35Pm1eDdyF6Vg3WC69opkqLIVt3GY&callback=initMap">
</script>
&#13;