2017-03-17 3 views

Antwort

1

können Sie die PolyUtil.isLocationOnPath Methode aus dem Google Maps Android API Utility Library verwenden:

Ermittelt, ob der angegebene Punkt auf oder in der Nähe einer Polylinie liegt, innerhalb einer bestimmten Toleranz in Metern. Die Polylinie besteht aus großen Kreissegmenten, wenn Geodäsie wahr ist, und aus Rhumb-Segmenten andernfalls. Die Polylinie ist nicht geschlossen - das schließende Segment zwischen dem ersten Punkt und dem letzten Punkt ist nicht enthalten.

public static boolean isLocationOnPath(LatLng point, List<LatLng> polyline, boolean geodesic, double tolerance)

Sie müssen über Ihre Markierungen zu durchlaufen und sie sichtbar oder unsichtbar in Abhängigkeit von der zurückgegebene Wert von PolyUtil.isLocationOnPath mit der gewünschten Toleranz (500 in Ihrem Beispiel) machen:

for(Marker marker : markers) { 
    if (PolyUtil.isLocationOnPath(marker.getPosition(), yourRoutePath, false, 500)) { 
     marker.setVisible(true); 
    } else { 
     marker.setVisible(false); 
    } 
} 
Verwandte Themen