Add marker to OSMdroid 5.5 map

后端 未结 1 1112
囚心锁ツ
囚心锁ツ 2021-01-15 05:34

I want to add markers to my OSMdroid map. I am using OSMdroid version 5.5. The official tutorial suggests the following code:

//your items
A         


        
相关标签:
1条回答
  • 2021-01-15 06:11

    Okay, so I found out how to use it. The ItemizedOverlayWithFocus doesn't require a ResourceProxy at all. So you can use one of the following constructors:

    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) { ... }
    

    This is how I adjusted the code from my question to make it work:

    //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);
    
    0 讨论(0)
提交回复
热议问题