【发布时间】:2017-08-08 21:17:45
【问题描述】:
我有一个带有地图活动的应用程序。我也在上面放了一些标记。
我在这个 SO 问题中找到了如何在 2 点之间绘制路径: Answer : Draw path between two points using Google Maps Android API v2
如何仅显示半径(例如 500m)内靠近此路径的标记?
【问题讨论】:
标签: android google-maps google-maps-markers
我有一个带有地图活动的应用程序。我也在上面放了一些标记。
我在这个 SO 问题中找到了如何在 2 点之间绘制路径: Answer : Draw path between two points using Google Maps Android API v2
如何仅显示半径(例如 500m)内靠近此路径的标记?
【问题讨论】:
标签: android google-maps google-maps-markers
您可以使用Google Maps Android API Utility Library 中的PolyUtil.isLocationOnPath 方法:
计算给定点是否位于多段线上或附近,在以米为单位的指定容差范围内。如果测地线为真,则多段线由大圆线段组成,否则由 Rhumb 线段组成。折线未闭合——不包括第一个点和最后一个点之间的闭合段。
public static boolean isLocationOnPath(LatLng point, List<LatLng> polyline, boolean geodesic, double tolerance)
您将需要迭代您的标记,并根据PolyUtil.isLocationOnPath 的返回值以及您所需的容差(在您的示例中为 500)使它们可见或不可见:
for(Marker marker : markers) {
if (PolyUtil.isLocationOnPath(marker.getPosition(), yourRoutePath, false, 500)) {
marker.setVisible(true);
} else {
marker.setVisible(false);
}
}
【讨论】: