这应该是可能的!我假设您可以在 MapActivity 中加载数据列表,因此让我们调用以Marker
供进一步参考。只需使用可绘制对象来表示它们并扩展ItemizedOverlay
public class MarkerOverlay extends ItemizedOverlay<OverlayItem>{
Collection<Marker> mMarkers;
public MarkerOverlay(Drawable drawable, Collection<Marker> markers){
super(drawable);
mMarkers = marker;
}
@Override
public OverlayItem createItem(int index){
Marker m = mMarkers.get(index);
return new OverlayItem(new GeoPoint(m.getLatitude(), m.getLongitude()),
m.getTitle(), m.getSnippet();
}
@Override
public int size(){
return mMarkers.size();
}
}
在您的 MapActivity 中,您可以执行以下操作:
MarkerOverlay mMarkerOverlay;
public void onCreate(Bundle icicle){
super(icicle);
ArrayList<Marker> list = Cursor.getList(); //fetch your data from Cursor
mMarkerOverlay = new MarkerOverlay(getResources().getDrawable(
R.drawable.some_marker_drawable),
list);
getOverlays().add(mMarkerOverlay);
}
您还可以为每个标记提供一个独特的可绘制对象。只需在返回之前将其设置在 createItem 中