2017-03-17 7 views
0

マップアクティビティを持つアプリケーションがあります。私はまたそれにいくつかのマーカーを入れました。アンドロイドマップのルートパスの近くにマーカーを表示するにはどうすればよいですか?

私はSO 2点間のパスを描画する方法を質問し、この中に発見した: Answer : Draw path between two points using Google Maps Android API v2

は、どのように私は、例えば、500メートルのための半径で、このパスに近い私のマーカーのそれらのみ表示することができますか?

答えて

1

あなたはGoogle Maps Android API Utility LibraryからPolyUtil.isLocationOnPathメソッドを使用することができます。

は、与えられた点は、メートル単位で指定された許容範囲内で、ポリライン上またはその近くにあるかどうかを計算します。ポリラインは、測地線が真であれば大きな円のセグメントで、それ以外の場合はRhumbセグメントで構成されます。ポリラインは閉じられていません。最初の点と最後の点の間の終了部分は含まれません。

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

あなたのマーカーを反復し、ご希望の公差(あなたの例では500)でPolyUtil.isLocationOnPathの戻り値に応じて、それらを表示または非表示にする必要があります。

for(Marker marker : markers) { 
    if (PolyUtil.isLocationOnPath(marker.getPosition(), yourRoutePath, false, 500)) { 
     marker.setVisible(true); 
    } else { 
     marker.setVisible(false); 
    } 
} 
関連する問題