ここに問題があります。問題は、Latlngとポジションクラスの問題のため、マーカーの位置データを取得できません。追跡のためにマーカーから位置を取得するには?</p> <p>私は、ユーザーがinfoWindow内のボタンを押した後にマーカーに到達する最善のルートを表示したいと考えています(Android Mapbox)
を(私はルートを取得するためにMapboxの例を使用していますので、私は2つの位置の値を必要とする)ので、基本的に、私は、カスタム情報ウィンドウ内のボタンをクリックすると、マーカーの位置を変数先を更新する必要があります。しかし、GoogleとStack Overflowの検索に多くの時間を費やしても、どうすればいいのか分かりません。誰か助けてくれますか? (Cammack!)助けを頼んでくれてありがとう!
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
// Origem: Rodoviaria
final Position origin = Position.fromCoordinates(-47.882645, -15.794082);
// Destino: Reitoria
final Position destination = Position.fromCoordinates(-47.866611, -15.762604);
//...
mapboxMap.setInfoWindowAdapter(new MapboxMap.InfoWindowAdapter() {
@Nullable
@Override
public View getInfoWindow(@NonNull Marker marker) {
//...
final Marker marcador = marker;
botaoIr = (Button)v.findViewById(R.id.botaoIr);
botaoIr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//I have been trying the method below, but I am having trouble with LatLng and Position classes!
//LatLng ponto = marcador.getPosition();
//destination = new Position(ponto.getLongitude(),ponto.getLatitude());
try {
getRoute(origin, destination);
} catch (ServicesException servicesException) {
servicesException.printStackTrace();
}
}
});
}
});
//...
}
ありがとうございました。 提案をお願いできますか?新しいマーカーを追加する前にマーカーを削除する必要がありますが、mapboxMap.removeMarker(マーカー)を使用できることはわかっていますが、そのようなことを行う前にPosition変数を初期化する必要があります。変数?ありがとう! –
私は質問を理解しているかどうかは分かりませんが、マーカーがヌルかどうかを確認して、それがマップではないことを知っていれば削除できます。 – cammace
混乱して申し訳ありませんが、mapboxMap.clear()メソッドを使用した場合と同じように、見つかったルートと新しいマーカーが消去されているかのように、表示されていたルートとマーカーを消去するメソッドが必要です。追加されました。それ以外の場合は、そのボタンをクリックするたびに、新しいマーカーと新しいルートが追加されますが、以前のものは消去されません。そのようなことをきれいにするメソッドを知っていますか?おかげさまでCammace!あなたに貸しがある! –