【发布时间】:2021-12-10 09:23:21
【问题描述】:
我正在尝试在另一个函数中为 Google Maps API 标记选项添加一个函数。我在尝试将函数添加为 addMarker({coordinates:{lat: 51.506, lng: -0.188}}); 方法的参数时遇到问题。
我正在尝试将参数传递给函数,以便能够将其添加为变量,但它不起作用,我不得不对其进行评论。
function initMap() {
map = new google.maps.Map(document.getElementById("map"), options);
function addMarker(props) {
let marker = new google.maps.Marker ({
position:props.coordinates,
map : map,
icon: "img/logo2.png",
});
//contentInfo = function addInfoWindow(contentWindow) {
let infoWindow = new google.maps.InfoWindow({
content: "<h3>Tower</h3>"
});
marker.addListener("click", function(){
infoWindow.open(map, marker);
});
//}
}
//Add Marker
addMarker({coordinates:{lat: 51.506, lng: -0.188}});
addMarker({coordinates:{lat: 51.497, lng: -0.129}});
addMarker({coordinates:{lat: 51.515, lng: -0.098}});
}
编辑
我其实希望能够调用这个函数:
contentInfo = function addInfoWindow(contentWindow) {
let infoWindow = new google.maps.InfoWindow({
content: "<h3>Tower</h3>"
});
marker.addListener("click", function(){
infoWindow.open(map, marker);
});
}
来自函数addMarker。像这样的:
function addMarker({coordinates:{lat: 51.515, lng: -0.098}, infoWindow()});
但我找不到合适的逻辑或语法来实现这一点。
【问题讨论】:
-
那么,您是说要将
infoWindow作为参数添加到addMarker函数?或者您在问如何将callback function 作为参数添加到addMarker函数?你能再描述一下什么是行不通的吗?我能够从Google Maps API docs 运行示例代码并使用您的代码添加标记,包括addListeners。 -
当您希望将其作为参数分配给另一个函数时,您不能调用(执行)一个函数。在
function addMarker({coordinates:{lat: 51.515, lng: -0.098}, infoWindow()});中,您将infoWindow引用为一个函数,但尚未将其定义为 - 也许您的意思是contentInfo,因为这是分配给您的函数的名称。??
标签: javascript function api google-maps