2016-12-11 10 views
2

OSMdroidマップにマーカーを追加したい。 OSMdroid バージョン5.5を使用しています。OSMdroid 5.5にマーカーを追加するマップ

//your items 
ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); 
items.add(new OverlayItem("Title", "Description", new GeoPoint(0.0d,0.0d))); // Lat/Lon decimal degrees 

//the overlay 
ItemizedOverlayWithFocus<OverlayItem> mOverlay = new ItemizedOverlayWithFocus<OverlayItem>(items, 
    new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() { 
    @Override 
    public boolean onItemSingleTapUp(final int index, final OverlayItem item) { 
    //do something 
     return true; 
    } 
    @Override 
    public boolean onItemLongPress(final int index, final OverlayItem item) { 
     return false; 
    } 
}, mResourceProxy); // <----- where to get this object from? 
mOverlay.setFocusItemsOnTap(true); 

mMapView.getOverlays().add(mOverlay); 

しかし、私はからmResourceProxyオブジェクトを取得するかわからない:official tutorialは、次のコードを示唆しています。私がこのトピック(OSMdroidのGitHubページを含む)について見つけたすべてのウェブサイトは、DefaultResourceProxyImplクラスを使用しています。これはバージョン5.2以降では非推奨です。

マーカーのバージョン> = 5.2を追加する方法は誰にも分かりますか?

答えて

3

さて、私はそれを使用する方法を見つけました。 ItemizedOverlayWithFocusには、ResourceProxyはまったく必要ありません。だから、次のコンストラクタのいずれかを使用できます。これは私がそれを動作させるために私の質問からコードを調整する方法である

public ItemizedOverlayWithFocus(Context pContext, List<Item> aList, OnItemGestureListener<Item> aOnItemTapListener) { ... } 

public ItemizedOverlayWithFocus(List<Item> aList, OnItemGestureListener<Item> aOnItemTapListener, Context pContext) { ... } 

public ItemizedOverlayWithFocus(List<Item> aList, Drawable pMarker, Drawable pMarkerFocused, int pFocusedBackgroundColor, OnItemGestureListener<Item> aOnItemTapListener, Context pContext) { ... } 

:これを起動するための

//your items 
ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); 
items.add(new OverlayItem("Title", "Description", new GeoPoint(0.0d,0.0d))); // Lat/Lon decimal degrees 

//the overlay 
ItemizedOverlayWithFocus<OverlayItem> mOverlay = new ItemizedOverlayWithFocus<OverlayItem>(
    this, items, // <--------- added Context this as first parameter 
    new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() { 
    @Override 
    public boolean onItemSingleTapUp(final int index, final OverlayItem item) { 
    //do something 
     return true; 
    } 
    @Override 
    public boolean onItemLongPress(final int index, final OverlayItem item) { 
     return false; 
    } 
}); // <----- removed the mResourceProxy parameter 
mOverlay.setFocusItemsOnTap(true); 

mMapView.getOverlays().add(mOverlay); 
+1

おかげで、私はチュートリアルを更新します – spy

+0

2番目のコンストラクタが私のために働いた。ありがとう。チュートリアルを更新してください。私はこの1つを取得するために数時間を捜した –

+2

更新されました – spy

関連する問題