2017-03-17 82 views

回答

1

您可以使用从Google Maps Android API Utility LibraryPolyUtil.isLocationOnPath方法:

计算指定点是否位于或靠近折线,以米为单位规定的公差范围内。如果测地线为真,则多段线由大圆段组成,否则由多段圆段组成。多段线未关闭 - 不包括第一点和最后一点之间的闭合段。

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