39

次の方法でデフォルトのマーカーをGoogleMapに追加しています。

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap();

MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(currentLocation.getCoordinate());
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate()));
markerOptions.snippet("Blah");

locationMarker = map.addMarker(markerOptions);
locationMarker.setDraggable(true);

マーカーにタッチなしで常にタイトルとスニペットを表示させるにはどうすればよいですか?また、タッチで非表示にしないようにします。

4

6 に答える 6

102

これはとても簡単だ:

locationMarker.showInfoWindow();
于 2013-04-22T12:32:45.187 に答える
6

以下のようにマーカーを使用showInfoWindow()して追加します。

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text"));
marker.showInfoWindow();
于 2017-05-03T12:56:23.460 に答える
5

に対してfalseを返すだけonMarkerClickListenerです。trueを返すと、が表示されますinfoWindow

マーカーをクリックしたときにタイトルを非表示にするには:

map.setOnMarkerClickListener(this);
...

@Override
public boolean onMarkerClick(Marker arg0) {     
  Log.i(TAG,"marker arg0 = "+arg0);               
  return false;
}

trueを返すとタイトルが表示され、falseを返すとタイトルは表示されません。

于 2013-11-21T16:44:14.587 に答える
5

マーカーを表示および非表示にする方法は2つあります。ブール値の戻り値は、デフォルトの動作が発生しないようにする(false)か、発生させる(true)だけです。つまり、イベントを消費したかどうかをシステムに通知します。GoogleAPIリファレンスを参照してください。

private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        if (marker.isInfoWindowShown()) {
            marker.hideInfoWindow();
        } else {
            marker.showInfoWindow();
        }
        return true;
    }
};

mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener);
于 2015-05-12T20:14:47.980 に答える
2

この質問は古いことは知っていますが、誰かに役立つ場合に備えて、ここに回答を投稿します。

私の場合、情報ウィンドウは機能しませんでした。タイトルは、スペースがある場合にのみ表示し、表示するのに十分なスペースがない場合は非表示にして、互いに重ならないようにしました。

私はインターネット上で解決策を見つけられなかったので、私は袖をまくり上げて、私の問題を解決するこのライブラリを作成しました。うまくいけば、それは他の人にも役立つでしょう:

https://github.com/androidseb/android-google-maps-floating-marker-titles

これがどのように機能するかのプレビューです:

プレビュー

于 2018-08-12T18:13:57.403 に答える
1

待ってください、しかしここに私の答えがあります:

ドキュメントから、情報ウィンドウが一度に1つずつ表示されるというテキストがあるため、それを行う方法はありません。

「情報ウィンドウを使用すると、ユーザーがマーカーをタップしたときに情報を表示できます。一度に表示される情報ウィンドウは1つだけです。ユーザーがマーカーをクリックすると、現在の情報ウィンドウが閉じられ、新しい情報ウィンドウが表示されます。ユーザーが現在情報ウィンドウを表示しているマーカーをクリックすると、その情報ウィンドウが閉じて再び開くことに注意してください。」

マップAPIドキュメントによると:

「ベストプラクティス:最高のユーザーエクスペリエンスを実現するには、一度に1つの情報ウィンドウのみを地図上で開く必要があります。複数の情報ウィンドウを使用すると、地図が乱雑に見えます。一度に1つの情報ウィンドウのみが必要な場合は、1つだけ作成できます。InfoWindowオブジェクトを開き、ユーザークリックなどのマップイベント時にさまざまな場所またはマーカーで開きます。複数の情報ウィンドウが必要な場合は、複数のInfoWindowオブジェクトを同時に表示できます。」

https://developers.google.com/maps/documentation/javascript/infowindows

于 2018-11-01T15:37:09.707 に答える