【问题标题】:How to hide marker when zoom out?缩小时如何隐藏标记?
【发布时间】:2016-03-27 07:38:33
【问题描述】:

我正在通过 JavaScript 开发 android 应用程序,我想知道当我使用 Google 地图缩小小于 15 时如何隐藏地图标记,这是我使用的代码:

function success1(position) {
    var bangalore = { lat: 24.7511, lng: 46.6568 };
    var gift = { lat: 24.7906, lng: 46.6312 };
    var map = new google.maps.Map(document.getElementById('mapp'), {
    zoom: 17,
    streetViewControl: false,
    panControl: false,
    disableDoubleClickZoom: true,
    TiltGestures: false,
    AllGestures: false,
    ZoomGestures: false,
    ScrollGestures: false,
    zoomControl: false,
    scrollwheel: false,
    center: bangalore
    });        
    var image = 'http://iconbug.com/download/size/32/icon/7605/yellow-gift-box/';
    zoom = map.getZoom();
    var zoom = map.getZoom();
    var beachMarker = new google.maps.Marker({
    position: gift,
    map: map,
    icon: image,
    });         
    }

【问题讨论】:

    标签: javascript android google-maps


    【解决方案1】:

    要从地图中删除/隐藏marker,请调用 setMap() 方法并将 null 作为参数传递。

    marker.setMap(null);
    

    .setMap(null) 函数将阻止标记显示在地图上。您也可以使用它来隐藏多边形和折线。

    google.maps.event.addListener(map, 'zoom_changed', function() { 
        var zoom = map.getZoom(); 
        if (zoom <= 15) { 
            marker.setMap(null); 
        } else { 
            marker.setMap(map); 
        } 
    }); 
    

    请注意,上述方法不会删除标记。它简直 从地图中删除标记。相反,如果您希望删除 标记,您应该将其从地图中删除,然后设置标记 自己为空。

    【讨论】:

      【解决方案2】:

      这是java代码。希望您可以将其转换为 Javascript。

      设置相机变化监听器。如果新的缩放级别小于之前的缩放级别,则表示发生了缩小,因此请隐藏标记。

      mMap.setOnCameraChangeListener(new OnCameraChangeListener() {
      
      private float currentZoom = mMap.zoom;
      
      @Override
      public void onCameraChange(CameraPosition newPosition) {
          if (newPosition.zoom < currentZoom){
              // remove a particular marker
              yourMarker.remove();
             // or remove all the markers
             mMap.clear();
          }
      }
      });
      

      【讨论】:

        【解决方案3】:

        在缩放级别上没有显示/隐藏标记的特定属性,您必须检查缩放级别

          var image = 'http://iconbug.com/download/size/32/icon/7605/yellow-gift-box/';
          if (zoomLevel>=15 ) { 
              var beachMarker = new google.maps.Marker({
                position: gift,
                map: map,
                icon: image,
              });    
          } 
        

        隐藏

          if (zoomLevel<15 ) { 
              beachMarker.setMap(null);
          }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-29
          • 1970-01-01
          • 1970-01-01
          • 2022-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-12
          相关资源
          最近更新 更多