2013-07-29 8 views
0

내 애플리케이션에는지도가 있으며지도에는 많은 핀이 있습니다. 사용자가 핀을 탭하면, 접촉 된 핀의 이름이 풍선 안에 나타납니다. 내가 원하는 것은 사용자가 핀에 닿을 때가 아니라 페이지로드시 모든 풍선을 표시하는 것입니다. 나는 ItemizedOverlayWithBubble 클래스를 작성하고 그것을 onSingleTapUpHelper라는 메소드 오버라이드 (override) : 그 내부페이지로드시 맵에로드 맵이 android에로드

@Override protected boolean onSingleTapUpHelper(final int index, final Item item, final MapView mapView) { 
     showBubbleOnItem(index, mapView, true); 
     return true; 
    } 

다른 메소드 호출 showBubbleOnItem이 (인덱스,지도보기, 사실)가이다;

public void showBubbleOnItem(final int index, final MapView mapView, boolean panIntoView) { 
     ExtendedOverlayItem eItem = (ExtendedOverlayItem)(getItem(index)); 
     mItemWithBubble = eItem; 
     if (eItem != null){ 
      eItem.showBubble(mBubble, mapView, panIntoView); 
      //setFocus((Item)eItem); 
     } 
    } 

페이지로드시 작동 할 수 있는지 잠시 보았지만 운이 없었습니다. 어떤 도움이라도 대단히 감사합니다.

답변

1

아마도 귀하의 포인트가 서로 겹칠 수 있습니다. 당신이 11,1와 12,2와 13,3 같은 작은 차이 정수에서 GeoPoint의를 만들 특히 이것은 당신이

GeoPoint(final int aLatitudeE6, final int aLongitudeE6)

를 사용할 때 여기 package org.osmdroid.util.GeoPoint 에서보세요 overlaped 오버레이 항목

를 나오긴합니다

귀하의 값은 (1.000.000입니다) 1E6로 multiplyed되지 않습니다 그래서 MapView

에서이 두 점 사이 곳의 차이가 없습니다및 GeoPoints(12,2)