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]
예. 감사합니다. 샘플로 시작했지만 OverlayItem을 내 자신의 것으로 대체했습니다. 어떤 비트가 호출되지 않는다고 생각합니까? pfOverlayItems로 구성된 배열 (mainOverlayArray)을 만드는 메소드가 있습니다. –
@Lee Armstrong : 위에 표시된 코드에는 mainOverlayArray가 채워지지 않습니다. 내 말은, – CommonsWare
. 방금 다른 예제를 사용하여 테스트를했는데 작동합니다.이 사이트는 "Public SitesOverlay (Drawable marker)"를 사용합니다. 마커가 내 사용자 지정 개체에서 가져 오지 않는 것 같습니다. 두 번째 코드 블록에서 OverlayItem을 확장하는 항목이 누락 되었습니까? –