【问题标题】:How to hide Google Map but remains my location shown including the markers?如何隐藏谷歌地图但仍然显示我的位置,包括标记?
【发布时间】:2018-02-13 10:08:43
【问题描述】:

所以我按照Google Map API的文档来实现它。

但我不想显示地图,而是希望它不可见,但我的位置仍然显示在它应该包含标记的位置。

可以吗?怎么样?

我找到了一个类似的question,但已经一年了,我想也许已经有了解决方案。

【问题讨论】:

    标签: android google-maps google-maps-api-3


    【解决方案1】:

    实际上你不能这样做,因为这违反了 Google 政策:

    没有 Google 地图就不能使用内容。除非 Maps API 文档明确允许您这样做,否则您不会在没有相应 Google 地图的情况下在 Maps API 实施中使用内容。例如,您可以在没有相应 Google 地图的情况下显示街景图像,因为 Maps API 文档明确允许这种用途。

    不得使用非 Google 地图的内容。您不得在包含非 Google 地图的 Maps API 实施中使用内容。

    检查此项以确保您的应用没有违反任何 Google 条款 https://developers.google.com/maps/terms#10-license-restrictions

    【讨论】:

    • Awts。虽然我可以使用自定义图像。
    • 你可以在上面叠加一张图片,但我认为它需要在谷歌地图的上面,也许这对你有帮助stackoverflow.com/questions/48665357/…
    【解决方案2】:

    您可以使用styling 隐藏您喜欢的任何地图功能。

    这是一个示例地图,隐藏了所有内容,并在所有几何体上应用了填充颜色,以在全球范围内拥有统一的背景。

    function initialize() {
    
      var southWest = new google.maps.LatLng(40.744656, -74.005966);
      var northEast = new google.maps.LatLng(34.052234, -118.243685);
      var lngSpan = northEast.lng() - southWest.lng();
      var latSpan = northEast.lat() - southWest.lat();
    
      var markers = [];
    
      var myLatlng = new google.maps.LatLng(38.392303, -86.931067);
    
      var map = new google.maps.Map(document.getElementById("map"), {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        styles: [{
            "elementType": "geometry.fill",
            "stylers": [{
              "color": "#fff050"
            }]
          },
          {
            "elementType": "geometry.stroke",
            "stylers": [{
              "visibility": "off"
            }]
          },
          {
            "elementType": "labels",
            "stylers": [{
              "visibility": "off"
            }]
          }
        ],
        disableDefaultUI: true
      });
    
      // Create some markers
      for (var i = 1; i < 100; i++) {
    
        var location = new google.maps.LatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random());
    
        var marker = new google.maps.Marker({
          position: location,
          map: map
        });
    
        markers.push(marker);
      }
    }
    #map {
      height: 150px;
    }
    <script async defer src="https://maps.googleapis.com/maps/api/js?callback=initialize"></script>
    <div id="map"></div>

    使用disableDefaultUI: true 也会删除所有地图控件。出于法律方面的考虑,您必须保留右下角的徽标和文字。

    This tool可以帮助你达到你喜欢的结果。

    所有这些都记录在案并且完全合法。

    编辑:此示例使用 Javascript API(您使用 google-maps-api-3 标记了您的问题),但您可以在 Android 上实现相同的功能,请参阅 the documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多