Google maps api 3 禁用谷歌地图上的可点击地标

Google maps api 3 禁用谷歌地图上的可点击地标,google-maps-api-3,Google Maps Api 3,我使用的是谷歌地图API v3。我想禁用默认google landmark/poi上的单击操作。例如,当我缩放到UCLA时,学校图标会显示出来(这很好),但我不希望用户单击并查看该位置的详细信息。我应该使用哪个API函数?我遇到了同样的问题。 谷歌最近似乎已经改变了他们的api,使基础地图标签“可点击”,并且还没有一个简单的api调用来禁用它们的可点击性。 我希望谷歌能添加这样一个简单的地图选项,但可惜它还不存在 var opts = { clickableLabels:false }; va

我使用的是谷歌地图API v3。我想禁用默认google landmark/poi上的单击操作。例如,当我缩放到UCLA时,学校图标会显示出来(这很好),但我不希望用户单击并查看该位置的详细信息。我应该使用哪个API函数?

我遇到了同样的问题。 谷歌最近似乎已经改变了他们的api,使基础地图标签“可点击”,并且还没有一个简单的api调用来禁用它们的可点击性。

我希望谷歌能添加这样一个简单的地图选项,但可惜它还不存在

var opts = { clickableLabels:false };
var map = new maps.google.com.map(div,opts);
以下解决方案可行,但由于它依赖于自定义样式的地图分幅,免费地图限制为(每天加载2500张地图)-


此问题已通过google登录,网址为:


请在此处对您的需求进行点评。

我知道这个问题很老,但这个答案可能会帮助其他人:

我不确定这是否合法,但我最终探索了代码并做出了以下结论:

$("#google-map").on("mousedown",function(){
    setTimeout(function(){
        disableInfoWindows();
    },500);
});

function disableInfoWindows()
{
    $(".gm-iw.gm-sm").parent().parent().remove();
    $("[style='position: absolute; left: -2px; top: -336px; width: 59px; height: 492px; -webkit-user-select: none; border: 0px; padding: 0px; margin: 0px;']")
    .parent()
    .parent()
    .remove();
}

这对我来说很有效,没有显示信息窗口,同时保留了所有图标。欢迎任何有想法改进代码的人,信息窗口在第一次打开时只显示了一点,在第一次打开后,它就完全消失了。

我知道OP想要一个解决方案,它可以保留标签/图标,但暂停点击事件。我不确定这是否可能;请

但是,我们中的一些人正在绘制图形,而无图形管理器和标签/图标正在阻碍新点的添加。如果符合您的要求,您可以临时删除图标/标签。我发现公交、poi和景观都需要切换:

var map = new google.maps.Map(document.getElementById("map"), {});
map.poi = function(state){

  var styles = [
    {
      "featureType": "transit",
      "stylers": [
        { "visibility": "off" }
      ]
    },{
      "featureType": "poi",
      "stylers": [
        { "visibility": "off" }
      ]
    },{
      "featureType": "landscape",
      "stylers": [
        { "visibility": "off" }
      ]
    }
  ];

  this.set("styles", (state)? {} : styles );

}
以及用法:

//turn the labels/icons off
map.poi(false);

//turn them back on
map.poi(true);

谷歌已经为此公开了一个选项。请参见
google.maps.MapOptions
clickableIcons

初始化代码示例:

map = new google.maps.Map(document.getElementById('map'), {
    clickableIcons: false
});

将此选项添加到mapOption 可单击图标:false

这是更多的选择,我想你会的

draggable:true,//用于禁用draggable
disableDefaultUI:true,//这表示禁用默认UI
fullscreenControl:false,//用于禁用全屏
scrollwheel:true,//用于禁用滚轮
disableDoubleClickZoom:false,//用于禁用双击缩放
DragTableCursor:'crosshair',//这是用于游标类型的
draggingCursor:'move',//这是用于拖动光标类型
minZoom:3,//这是地图的最小缩放
maxZoom:18,//这是地图的最大缩放
//注:最大、最小缩放对我的设计非常重要。
zoom:14,//这是默认的缩放

clickableIcons:false,//这将禁用除自定义信息窗口或信息框之外的所有标签图标。
我在airbnb地图搜索中找到了一个示例。他们禁用了地标单击而不隐藏地标。他们是怎么做到的?我想你可以强制他们的api的早期版本,比如说3.3或3.4,它可能会工作,或者你可以使用我在下面发布的最新api解决方案。我会尝试一下。谢谢。读了这篇文章,它看起来会完全隐藏标记,而不是简单地让它们不可点击。对吗?对。对于一个非官方的(不稳定的)解决方案,可以看到我在上面关于强制使用早期API版本的问题下的评论。如果你能找到更好的解决方案,我很想听听。谢谢!这完全有帮助
map = new google.maps.Map(document.getElementById('map'), {
    clickableIcons: false
});