2017-09-14 17 views
2

私の実装は以下の通りです。マーカーをタップすると、そのマーカーに関する説明が表示されません。私は多くの情報源を通っていましたが、働くものを取り出すことはできませんでした。ポジティブな方法を探しています。ユーザーがosmdroidマップのマーカーをタップしたときにマーカースニペットを設定するにはどうすればよいですか?

public Marker addMarker(GeoPoint p) { 

    Marker marker = new Marker(osm); 
    marker = new Marker(osm); 
    marker.setPosition(p); 
    osm.getOverlays().add(marker); 
    marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM); 
    marker.setIcon(getResources().getDrawable(R.drawable.black)); 
    marker.setTitle("Marker"); 
    marker.setSnippet("Snippet marker"); 
    marker.setSubDescription("SubDescription marker"); 
    return marker; 

} 
+0

テキストなしのバブル(InfoWindow)が表示されていますか、またはバブルがまったく表示されていませんか?作成後にonClickListenerをマーカーに設定するコードはありますか? –

+0

私はバブルを一切見ず、マーカージオポイントごとに新しいオブジェクトを作成します – himagaran

+0

もう一度質問してください:marker.setOnMarkerClickListener(...)をどこでも呼び出していますか?投稿したコードではありませんが、返された値で何をしているのか分かりません。 –

答えて

1

コードは正しいので、正しく動作するはずです。 openstreetmapライブラリの最新バージョンを使用し、それに応じてコードを変更する必要があります。現在、Latest versionは5.6.5です。

迅速細工の例では、(タップ後)、この結果を与えている:私は描画可能を持っていないので

marker.setIcon(getResources().getDrawable(R.drawable.black)); 

enter image description here

私は、この行をコメントアウトする必要がありました。

osmbonuspackから使用しているクラスは、osmdroidライブラリに移動されたため、そこには存在しません。インポートを変更する必要があります(例:org.osmdroid.views.overlay.Markerなど)。あなたが提供するコードは必要ないので、osmbonuspackの依存関係を完全に削除することができます。あなたはタイル源の構成を変更する必要があります

osm.setTileSource(TileSourceFactory.MAPNIK); 

(ただし、OpenStreetMapのタイル用a usage policyがありますのでご注意ください。)

最後の注意を:マーカーに共通の問題は、いつでカスタムonMarkerClickListenerを設定すると、デフォルト実装は呼び出されません。 marker.showInfoWindow()を呼び出すことによって、リスナーからマーカーウィンドウを開く必要があります。しかし、これはあなたの問題ではありません。

+0

努力してくれてありがとう、私はあなたの仕事にうれしいです。私は1つのことを明確にする必要があります。このリンクhttps://drive.google.com/file/d/0ByXacZESDmJRQWYzblNINEY5Zjg/viewは、libsセクションのバージョンで私の外部ライブラリを表示します。ライブラリを最新のバージョンにアップグレードした後でも、私はまだ同じ問題に直面しています – himagaran

+0

@himagaranなぜライブラリの古いバージョンを使用していますか?あなたのプロジェクトにosmdroid 4.3があります。古いバージョンにはバグや問題があるかもしれません。私は通常、ライブラリのソースコードを読むことで問題の解決策を見つけることができます。しかし、私はそれが価値がないので、私はそれらの古いバージョンに行って勉強するつもりはないと思う。また、なぜgradleを使用しないのですか?あなたはすでにgradle経由でosmdroidの最新バージョンについて尋ねました:https://stackoverflow.com/questions/45930978/i-get-an-error-on-getinstance-method-even-though-i-followed-the-osmdroid-documあなたはあなたの質問に答えました。 –

+0

私のPCのメモリが足りなくなったためにgradleが停止しました。とにかくもう一度調べてお知らせします。再びありがとう – himagaran

関連する問題