私はアンドロイドのマップのv2バージョンを使用するアプリImの構築にツールをまとめました。マーカーが互いに非常に近い場合、マーカーは互いに重ねて描画されますが、これは問題ではありませんが、少なくとも起こりたいことです最後に描画されたマーカーが一番上に表示されます。
描画された最後のマーカーが残りの上に表示されるようにする方法はありますか、それとも密接にグループ化されたマーカーを表示することになると、システムの意思決定に翻弄されますか.
今のところ、私はちょうど使用することになった
marker.showInfoWindow();
最後に描画されたマーカーが画面上の他のマーカーの一番上に表示されるようにするという、私が望む正確な動作が得られます。
補足として、情報ウィンドウを開きますが、本当にしたい場合は、カスタムレイアウトを設定して、特定の条件下で情報ウィンドウをnullにすることもできますが、私のニーズでは、ウィンドウが開くのは実際にはうまくいきます。
James が既に書いたように、InfoWindow を表示することでうまくいきます。
独自のアダプターを使用して、非表示の InfoWindow を「表示」できます。
public class InfoWindowAdapter implements GoogleMap.InfoWindowAdapter{
private final View mWindow;
public InfoWindowAdapter(Activity activity) {
mWindow = App.activity.getLayoutInflater().inflate(R.layout.custom_info_window,
null);
}
@Override
public View getInfoContents(Marker mark) {
return null;
}
@Override
public View getInfoWindow(Marker marker) {
render(marker, mWindow);
return mWindow;
}
private void render(Marker marker, View view) {
//do nothing
}
}
これをマップに設定します。
map.setInfoWindowAdapter(new InfoWindowAdapter(activity));
InfoWindow を表示します。
currentlySelectedMarker.setSnippet(" ");
currentlySelectedMarker.setTitle(" ");
currentlySelectedMarker.showInfoWindow();
setTitle の呼び出しは重要です。それ以外の場合、showInfoWindow() は無視されます。