Android 识别安卓谷歌地图中当前位置标记的点击

Android 识别安卓谷歌地图中当前位置标记的点击,android,google-maps-android-api-2,Android,Google Maps Android Api 2,在Google Maps V2 for Android中,当用户点击当前位置标记(带白色边框的蓝色标记)时,识别的最佳选项是什么 我在互联网上找不到任何例子,我唯一能想象的是: googleMap.setOnMapClickListener(new OnMapLongClickListener() { @Override public void onMapClick(LatLng point) { // curren

在Google Maps V2 for 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!");
                    }
            }
        });

您可以添加用户位置标记并引用其id:

mUserMarkerId = mMap.addMarker(new MarkerOptions().position(latLng)
                .icon(BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)))
                        .getId();
使用MarkerClickListener上的
可以检测单击的标记是否是用户标记

mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

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

            return true;
        }
    });
这是更好的解决办法

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!");
                    }
                }
            }
        });
map.setOnMapClickListener(新的GoogleMap.OnMapClickListener(){
@凌驾
公共无效的点击(LatLng LatLng)
{
Location=getLocation();
if(map.isMyLocationEnabled()&&location!=null)
{
浮动距离[]=新浮动[1];
Location.distanceBetween(Location.getLatitude(),Location.getLongitude(),latLng.latitude,latLng.longitude,distance);

如果(距离[0]我知道已经很晚了,但是对于任何一个搜索这个的人来说 现在,它得到了本地支持(自2017年9月18日起)

从下面提到的页面:

使用新的GoogleMap.OnMyLocationClickListener来检测用户何时单击“我的位置”蓝点

我建议您关注此页面以获取最新更新

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