2010-07-05 3 views
0

다음 코드가 있으며 마커가지도에 전혀 나타나지 않습니다!오버레이 항목에 마커가 표시되지 않습니다!

private class SitesOverlay extends ItemizedOverlay<pfOverlayItem> { 

    private List<pfOverlayItem> items=new ArrayList<pfOverlayItem>(); 
    //private PopupPanel panel=new PopupPanel(R.layout.popup); 

    public SitesOverlay() { 
     super(null); 

     items = mainOverlayArray; 

     populate(); 

    } 

    @Override 
    protected pfOverlayItem createItem(int i) { 
     return(items.get(i)); 
    } 

    @Override 
    public void draw(Canvas canvas, MapView mapView, 
             boolean shadow) { 
     super.draw(canvas, mapView, shadow); 

    } 


    @Override 
    public int size() { 

     return(items.size()); 

    } 



    private Drawable getMarker(int resource) { 
     Drawable marker=getResources().getDrawable(resource); 

     marker.setBounds(0, 0, marker.getIntrinsicWidth(), 
              marker.getIntrinsicHeight()); 
     boundCenter(marker); 

     return(marker); 
    } 
} 

mainOverlayArray는 pfOverlayItem의이 가득하고 그 클래스의 코드가 나는 또한 XML 파일을 처리 한 후이 외부 마커를 설정

public class pfOverlayItem extends OverlayItem { 
private String coolText; 

public String getcoolText() { 
    return coolText; 
} 

public void setcoolText(String coolText) { 
    this.coolText = coolText; 
} 

public pfOverlayItem(GeoPoint point, String title, String snippet) { 
    super(point, title, snippet); 
    // TODO Auto-generated constructor stub 
} 

} ...

입니다
ArrayList<pfOverlayItem> overArray = myXMLHandler.getOverlayArray(); 
       mainOverlayArray = overArray; 
       pfOverlayItem tempOver = null; 
       Drawable marker = getResources().getDrawable(R.drawable.icon); 
       for (int i = 0; i < mainOverlayArray.size(); i++) { 
        tempOver = mainOverlayArray.get(i); 
        tempOver.setMarker(marker); 
       } 

       sites=new SitesOverlay(); 
       myMapView.getOverlays().add(sites); 
       myMapView.invalidate(); [/code] 

답변

3

내의 one에서 시작하는 것처럼 보입니다.sampleGoogleMapapplications. 여기에 표시된 코드가 불완전합니다 (예 : 여기 코드에 따르면 OverlayItem 인스턴스를 만들지 않음).

위의 링크 중 하나의 샘플로 롤백하고 거기에서 수정을 시작하거나, 어떤 메소드가 호출되는지, 어떤 메소드가 호출되지 않는지 파악하려고합니다.

+0

예. 감사합니다. 샘플로 시작했지만 OverlayItem을 내 자신의 것으로 대체했습니다. 어떤 비트가 호출되지 않는다고 생각합니까? pfOverlayItems로 구성된 배열 (mainOverlayArray)을 만드는 메소드가 있습니다. –

+1

@Lee Armstrong : 위에 표시된 코드에는 mainOverlayArray가 채워지지 않습니다. 내 말은, – CommonsWare

+0

. 방금 다른 예제를 사용하여 테스트를했는데 작동합니다.이 사이트는 "Public SitesOverlay (Drawable marker)"를 사용합니다. 마커가 내 사용자 지정 개체에서 가져 오지 않는 것 같습니다. 두 번째 코드 블록에서 OverlayItem을 확장하는 항목이 누락 되었습니까? –

관련 문제