2014-11-03 156 views
1

在Android版Google地图V2中,当用户点击当前位置标记(蓝色的白色边框)时,最佳选择是什么?识别Android上点击当前位置标记谷歌地图

我不明白在网上,我可以想像的唯一途径的任何例子是这样的:

googleMap.setOnMapClickListener(new OnMapLongClickListener() { 
      @Override 
      public void onMapClick(LatLng point) { 
       // currentLocation is the location set by onLocationChanged method 
       if (currentLocation != null 
          && (currentLocation.getLatitude() == point.latitude 
          && currentLocation.getLongitude() == point.longitude)) { 
         toastIt("Click over current position!"); 
        } 
      } 
     }); 
+0

检查此类似[问题](http://stackoverflow.com/q/16496715/3419997) – turtle 2014-11-03 10:46:31

回答

0

我知道已经晚了,但对于任何一个搜索出该 它本身现在支持(自2017年9月18日)

从页提到如下:

使用新的GoogleMap.OnMyLocationClickListener检测用户何时单击“我的位置”蓝点。 (第35822305)

@Override 
public void onMyLocationClick(@NonNull Location location) { 
    Toast.makeText(this, "Current location:\n" + location, Toast.LENGTH_LONG).show(); 
} 

我建议按照这个页面的最新更新 https://developers.google.com/maps/documentation/android-api/releases

2

您可以添加用户位置标记,并采取参考它的ID:

mUserMarkerId = mMap.addMarker(new MarkerOptions().position(latLng) 
       .icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_BLUE))) 
         .getId(); 

并与onMarkerClickListener可以检测是否标记点击是用户标记

mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 

     @Override 
     public boolean onMarkerClick(Marker marker) { 
      if (marker.getId().equalsIgnoreCase(mUserMarkerId)) 
       // Clicked user marker 
      } 

      return true; 
     } 
    }); 
0

我T的更好的解决方案

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
      @Override 
      public void onMapClick(LatLng latLng) 
      { 
       Location location=getLocation(); 
       if(map.isMyLocationEnabled()&&location!=null) 
       { 
        float distance[]=new float[1]; 
        Location.distanceBetween(location.getLatitude(), location.getLongitude(), latLng.latitude, latLng.longitude, distance); 
        if(distance[0]<location.getAccuracy()) 
        { 
         Log.d(TAG, "onMapClick: It is user!"); 
        } 
       } 
      } 
     }); 
相关问题