查看当前位置是否接近标记

时间:2015-06-09 11:16:04

标签: android google-maps location

我有一个Google Maps API活动,并希望只有用户在某个半径范围内才能点击标记。 最好的方法是怎样做的? 这就是我设置标记的方式:

Marker marker1 = googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(49.793012, 9.926201))
            .title(getString(R.string.Title1))
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));
    Marker marker2 = googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(49.792742, 9.939118))
            .title(getString(R.string.Title2))
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));
    Marker marker3 = googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(49.793349, 9.932558))
            .title(getString(R.string.Title3))
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));

解决方案代码:

LatLng markerPosition = marker.getPosition();
myLocation = locationManager.getLastKnownLocation(provider);
Location markerLoc = new Location("marker");
markerLoc.setLatitude(markerPosition.latitude);
markerLoc.setLongitude(markerPosition.longitude);
float meters = myLocation.distanceTo(markerLoc);

1 个答案:

答案 0 :(得分:0)

您可以LatLng获取marker.getPosition()个标记;然后你可以将它与CurrentLocation进行比较。为此,您可以查看此post,然后您可以按照以下步骤制作clickablenotclickable标记:

getMap().setOnMarkerClickListener(new OnMarkerClickListener() {
    public boolean onMarkerClick(Marker marker) {
        onMapClick(marker.getPosition());
        return true;
    }
});

如果您为该功能返回true,则表示您已接受marker上发生的点击事件;否则,你没有接受它。

此外,你可以用:

MarkerOptions.clickableMarker.setClickable

这只是指导我如何做你想做的事。希望能帮助到你。 :)