我有一个带有地图活动的应用程序。我也在上面写了一些标记。
我在这个SO问题中找到了如何绘制2点之间的路径: Answer : Draw path between two points using Google Maps Android API v2
我如何仅显示半径中距离此路径很近的标记,例如500米?
答案 0 :(得分:1)
您可以使用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);
}
}