我有一个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);
答案 0 :(得分:0)
您可以LatLng
获取marker.getPosition()
个标记;然后你可以将它与CurrentLocation
进行比较。为此,您可以查看此post,然后您可以按照以下步骤制作clickable
或notclickable
标记:
getMap().setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
onMapClick(marker.getPosition());
return true;
}
});
如果您为该功能返回true
,则表示您已接受marker
上发生的点击事件;否则,你没有接受它。
此外,你可以用:
MarkerOptions.clickable
和Marker.setClickable
。
这只是指导我如何做你想做的事。希望能帮助到你。 :)