58

我在工作中有这个任务,我需要使用 Google maps API v3,他们给我的设计没有 google 在地图下部放置的徽标/页脚/版权。好吧,我需要禁用或隐藏它,因为我被告知无论如何我都需要匹配确切的设计。

我必须强调,这样做违反了 Google 服务的使用条款……

9.4 归属。

(a) 通过服务提供给您的内容可能包含 Google、其合作伙伴或 Google 索引内容的其他第三方权利持有人的商号、商标、服务标记、徽标、域名和其他独特的品牌特征。当 Google 提供此属性时,您必须按照通过服务提供的或 Maps API 文档中的说明显示它,并且不得删除或以任何方式更改这些商号、商标、服务标记、徽标、域名和其他独特品牌特征。 https://developers.google.com/maps/terms

好吧,在我的工作中,他们并不关心这一点,他们总是告诉我无论如何都要这样做,所以我就是这样做的。

在 css 中,我添加了以下代码行:

#map-report div.gmnoprint,
#map-report div.gmnoscreen {
    display: none;      
}

img[src="http://maps.gstatic.com/mapfiles/google_white.png"] {
    display: none; 
}
4

18 回答 18

128

这个 CSS 的工作原理就像魅力 [2019 年 10 月测试]。
删除Google 徽标使用条款报告问题div。


a[href^="http://maps.google.com/maps"]{display:none !important}
a[href^="https://maps.google.com/maps"]{display:none !important}

.gmnoprint a, .gmnoprint span, .gm-style-cc {
    display:none;
}
.gmnoprint div {
    background:none !important;
}
于 2014-05-12T15:42:09.777 回答
20

为 api v3 试试这个:

.gm-style-cc { display:none; }

于 2014-03-22T18:48:42.767 回答
15

2018 年 1 月更新。只留下干净的地图:

a[href^="http://maps.google.com/maps"],
a[href^="https://maps.google.com/maps"],
a[href^="https://www.google.com/maps"] {
    display: none !important;
}
.gm-bundled-control .gmnoprint {
    display: block;
}
.gmnoprint:not(.gm-bundled-control) {
    display: none;
}

截至 2018 年 2 月,上面的 CSS 在地图上制作标记 unclickabe。如果你没有任何标记,你不应该有任何问题,但如果你只是删除最后一个 CSS 规则.gmnoprint:not(.gm-bundled-control),标记将变得可点击,但会有一些版权和使用条款标签

于 2016-03-29T11:08:04.053 回答
7

正如您所提到的,删除 Google 徽标和版权声明不符合Google Maps APIs TOS,特别是第 9.4 段:

“通过服务提供给您的内容可能包含 Google、其战略合作伙伴或 Google 索引的内容的其他第三方权利持有人的品牌特征。当 Google 通过服务提供这些品牌特征或其他属性时,您必须显示此类提供的属性(或 Maps API 文档中描述的属性),并且不得删除或更改属性。” .

为了遵守服务条款,请始终确保 Google 徽标和版权声明可见。

于 2017-01-12T09:33:52.553 回答
5

你可以这样做:

#map-report a img { display:none; } 
于 2013-03-22T20:28:26.890 回答
5

您不能从 API 中删除它。但是您可以使用可以放在版权声明上的 div

<div style="width:100px; height:15px; position:absolute; margin-left:100px margin-

bottom:50px; background-color:white;">
</div>

根据需要对高度、宽度和边距进行更改。

于 2012-09-19T17:53:04.827 回答
5

像 v3 的魅力一样工作:

.gm-style-cc {
  display: none !important;
}

.gm-style a[href^="https://maps.google.com/maps"] {
  display: none !important;
}

记下我.gm-style之前使用的第二个选择器a,否则它会隐藏所有链接,https://maps.google.com/maps不仅来自谷歌地图本身。

于 2017-01-26T10:56:01.703 回答
3

You can prevent the click on google copyright.so, that it will not let user to move out of your applicaiton.Hope this resolves your problem.

google.maps.event.addListenerOnce(map, 'idle', function(){
    // do something only the first time the map is loaded
    //@mapCopyright - gets the google copyright tags
    var mapCopyright=document.getElementById('map-canvas').getElementsByTagName("a");   
        $(mapCopyright).click(function(){
            return false;
        });
    });
于 2013-12-09T06:14:58.990 回答
2

首先将您的地图放入容器中:

<div id="map">
    <div class="google-maps"></div>
</div>

CSS:

#map {
    position: relative;
    height: 500px;
    overflow: hidden; //important
}
#map .google-maps {
    position: absolute;
    width: 100%;
    height: 110%;  //that will do the trick
    left: 0;
    top: 0;
}
于 2015-01-22T01:30:22.623 回答
2
a[href^="http://maps.google.com/maps"],a[href^="https://maps.google.com/maps"] {
     display: none !important;
}
.gmnoprint a,.gmnoprint span,.gm-style-cc { 
    display: none;
}
于 2020-01-09T09:36:54.593 回答
1

使用此代码(css)

a[href^="http://maps.google.com/maps"]{display:none !important}
于 2014-07-20T11:48:24.433 回答
1

在这里改进另一个解决方案,这只是禁用地图中的链接,因此人们不会离开应用程序(并且卡住而无法返回)。在应用程序上,当人们试图滚动小地图并错误地点击时,它会产生很大的不同。

  google.maps.event.addListenerOnce(map, 'idle', function(){

      $("#map a").click(function(){
          return false;
      });
  });
于 2015-07-19T21:50:56.237 回答
1

这个:

#map-repor > div { 
  height: 105% !important;
}

在我的情况下就足够了

于 2016-01-21T15:23:02.547 回答
0

这会成功的。

$('#map span:contains("©")')
    .closest('.gmnoprint')
    .css('opacity', '0')
于 2014-09-21T00:42:51.323 回答
0

使用 V3 的单行程序

CSS

#map .gm-style > div:not(:first-child) { display: none; }

jQuery

$('#map .gm-style > div:not(:first-child)').remove()
于 2016-11-08T00:04:13.183 回答
0

这目前有效,至少在他们修改徽标周围链接的标题属性之前。

.gm-style a[title='Click to see this area on Google Maps']{ display: none!important; }
于 2015-09-17T15:33:27.693 回答
0
  .gm-style-mtc,
  .gm-svpc,
  .gm-style-cc {
    display: none;
  }

我认为你应该添加一个包装块来改变新的风格!并在左页脚带有 Google 徽标。您可以在这里使用检查元素来获取我们的选择器。

#example-map > div > div > div:nth-child(3) {
  display: none;
}
于 2019-07-11T07:21:03.360 回答
0
.gm-style > div:first-child {
z-index: 10000000 !important;
}

z-index:js给所有div加1000000,但是我们只想看到map,所以必须设置z-index为10000000

于 2015-10-11T21:55:57.270 回答