在我的地图活动中,我显示几个指示停车场的标记,我有一个显示汽车图标的ImageView,该图标固定在地图片段顶部的屏幕中心。我想在拖动地图时汽车图标与parking_lot Marker重叠时执行一些操作。
这样做的可能方法是什么?
我可以在拖动的同时获得汽车的LatLong,但我不知道下一步该做什么。
答案 0 :(得分:2)
你可以用这个
获得地图的中心 Map.getCameraPosition().target;
然后您可以使用以下方法找到用户位置和中心之间的距离:
private static double distance(double lat1, double lon1, double lat2, double lon2) {
double theta = lon1 - lon2;
double dist = Math.sin(Math.toRadians(lat1)) * Math.sin(Math.toRadians(lat2)) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.cos(Math.toRadians(theta));
dist = Math.acos(dist);
dist = Math.toDegree(dist);
dist = dist * 60 * 1.1515;
return (dist * 1.609344);
}
如果距离低于特定值,请执行您想要的操作