2017-03-17 72 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); 
    } 
}