【问题标题】:Android Map: How to detect ImageView overlapping on Map Marker?Android Map:如何检测 Map Marker 上的 ImageView 重叠?
【发布时间】:2016-11-26 17:12:42
【问题描述】:

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

有哪些可能的方法?

我能够在拖动时获得汽车的经纬度,但我不知道下一步该做什么。

【问题讨论】:

  • 你只需要两个点的纬度/经度,然后你就可以使用这个:stackoverflow.com/a/8832202/4409409
  • 我认为找到两点之间的距离会有所帮助..谢谢兄弟。

标签: android android-maps-v2


【解决方案1】:

你可以用这个得到地图的中心

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

如果距离小于特定值,则执行您想要的操作

【讨论】:

  • 在 rad2deg() 方法中做了什么?
  • 将弧度转换为度数。编辑后@ZayidMohammed
猜你喜欢
  • 2020-03-07
  • 1970-01-01
  • 2013-10-15
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多