Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何自定义基本Google地图的行为';什么地方标记?_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何自定义基本Google地图的行为';什么地方标记?

Javascript 如何自定义基本Google地图的行为';什么地方标记?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我一直在使用谷歌地图API,虽然我可以添加和自定义我自己的标记和信息窗口,但基本地图有这些默认标记,单击时显示这些信息窗口(下图) 在单击这些位置时,是否有任何方法可以删除此行为或实现我自己的行为(使其与我的应用程序添加的标记的行为更加一致) 例如,如果能够在单击这些标记时添加我自己的标记,那就太好了。比如: defaultMarker.addListener("click", function () { myMarker = new google.maps.Marker({ ... }

我一直在使用谷歌地图API,虽然我可以添加和自定义我自己的标记和信息窗口,但基本地图有这些默认标记,单击时显示这些信息窗口(下图)

在单击这些位置时,是否有任何方法可以删除此行为或实现我自己的行为(使其与我的应用程序添加的标记的行为更加一致)

例如,如果能够在单击这些标记时添加我自己的标记,那就太好了。比如:

defaultMarker.addListener("click", function () {
    myMarker = new google.maps.Marker({ ... });
});
除了。。。我不知道如何获取这些默认标记

如果以前有人回答过这个问题,或者如果我完全错过了一些基本的东西,我表示歉意,但是由于缺乏更好的术语,我找不到任何关于这些“默认标记”的文档


地图JavaScript API的当前版本3.24在地图选项对象中有一个属性clickableIcons:

通过将clickableIcons属性设置为false,可以使用此属性关闭地图上的可单击图标。还存在一个setClickableIcons()方法


请看这个例子:

在最新的3.26版中,您可以通过单击位置标记来做更多的事情

您应该侦听贴图对象的“单击”事件。如果用户单击POI,将引发IconMouseEvent。此类扩展了常规MouseEvent并包含名为placeId的属性

在click事件处理程序中,可以检查事件对象是否定义了placeId。如果有,那么您就有单击位置的位置Id。您应该对事件调用stop()方法,以防止贴图显示标准信息窗口。您可以与Places API一起使用,以获取有关所单击图标的更多信息,并打开一个信息窗口,该窗口的外观和行为与您自己的信息窗口相同

我准备了一个小演示,演示如何做到这一点:


ClickEventHandler对象负责路由到单击的地点,并从地点服务获取详细信息,并将其显示在自定义信息窗口中。

感谢您提到stop()方法!几个小时以来一直在寻找一种禁用默认信息窗口的方法。