2010-03-01 3 views
2

Google hellomapview 자습서의 지침을 따랐습니다. 나는 작동하는 mapview 등을 얻는다. 그러나지도에 추가 된 두 항목은 보이지 않는다. 지정된 위치를 두드리는 것은 항목에 추가 된 메시지를 표시하기 때문에 어딘가에있는 것 같습니다.내지도 뷰의 오버레이가 표시되지 않는 이유는 무엇입니까?

편집

여기 내 소스 코드입니다. 구글 튜토리얼 소스 코드와 아주 가깝습니다.

public class MapOverlay extends ItemizedOverlay<OverlayItem> { 

private List<OverlayItem> overlays = new ArrayList<OverlayItem>(); 
private Context context; 

public MapOverlay(Drawable defaultMarker, Context context) { 
    super(defaultMarker); 
    overlays = new ArrayList<OverlayItem>(); 
    this.context = context; 
} 

@Override 
protected OverlayItem createItem(int i) { 
    return overlays.get(i); 
} 

@Override 
public int size() { 
    return overlays.size(); 
} 

public void addOverlay(OverlayItem overlay) { 
    overlays.add(overlay); 
    this.populate(); 
} 

@Override 
protected boolean onTap(int index) { 
    OverlayItem item = overlays.get(index); 
    AlertDialog.Builder dialog = new AlertDialog.Builder(this.context); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.show(); 
    return true; 
} 

} 

public class MapsActivity extends MapActivity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

    MapOverlay overlay = new MapOverlay(this.getResources().getDrawable(
      R.drawable.androidmarker), this); 

    overlay.addOverlay(new OverlayItem(new GeoPoint(19240000,-99120000), "Blubb", "See?")); 
    mapView.getOverlays().add(overlay); 
} 

@Override 
protected boolean isRouteDisplayed() { 
    return false; 
} 
} 

Google 자습서의 소스 코드는 어딘가에서 사용할 수 있습니까?

답변

8

문제는 드로어 블의 경계를 설정하는 것을 잊었습니다. 지도 뷰에서 이미지를 정렬하는 방법을 모르는 경우 이미지가 전혀 표시되지 않습니다.

나는에서 내 생성자의 첫 번째 라인을 변경 :

super(defaultMarker); 

super(boundCenterBottom(defaultMarker)); 

과의 작업을 완벽하게 알고있다.

+0

+1 나는 그 어리석은 실수도했다. 나는 자신의 (기본값이 아닌) 마커를 사용하는 새로운 'OverlayItem'을 생성 할 때 액세스 할 수 있도록 두 개의 바운드 함수를 내보내는 작업을 마쳤습니다. –

1

동시에, 나는 당신을 어떻게 도울 수 있을지 전혀 모른다.

Here은 확실히 오버레이와 함께 작동하는 다양한 프로젝트 버전에 해당합니다. 어쩌면 도움이 될 것입니다.

+0

Ok NooYak Project는 저에게 효과적입니다. 나는 당신과 나의 프로젝트의 차이점을 살펴볼 것이다. – Janusz