Android地图:如何检测地图标记上的ImageView重叠?

Android地图:如何检测地图标记上的ImageView重叠?,android,android-maps-v2,Android,Android Maps V2,在我的地图活动中,我显示了几个指示停车场的标记,我有一个显示汽车图标的图像视图,它固定在地图片段顶部屏幕的中心。我想在拖动地图时,当汽车图标与停车场标记重叠时执行一些操作 有哪些可能的方法可以做到这一点 我可以在拖动时获得汽车的拉长,但我不知道下一步该怎么办 您可以使用此工具获取地图中心 Map.getCameraPosition().target; 然后您可以使用此方法查找用户位置和中心之间的距离: private static double distance(double lat1, do

在我的地图活动中,我显示了几个指示停车场的标记,我有一个显示汽车图标的图像视图,它固定在地图片段顶部屏幕的中心。我想在拖动地图时,当汽车图标与停车场标记重叠时执行一些操作

有哪些可能的方法可以做到这一点

我可以在拖动时获得汽车的拉长,但我不知道下一步该怎么办


您可以使用此工具获取地图中心

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);
}

如果距离小于某个特定值,请执行所需操作

使用此选项可以获得地图中心

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);
}

如果距离小于某个特定值,请按您的要求进行操作

您只需要两个点的lat/lon,然后您可以使用:我认为找到两个点之间的距离B会有所帮助..谢谢兄弟。您只需要两个点的lat/lon,然后你可以使用这个:我认为找到两点之间的距离B会有帮助..谢谢兄弟。rad2deg()方法内部做什么?将弧度转换为度。后期编辑@ZayidMohammed在rad2deg()方法中做什么?将弧度转换为度。后编辑@ZayidMohammed