0
Я пытаюсь добавить наложение для myLocation в Android. Отображается карта, но наложение отсутствует. Я получил оверлей для отображения с использованием отдельного класса, который расширяет ItemizedOverlay. Мне интересно, есть ли способ показать эту отдельную точку без создания отдельного класса?Android MapView
Прилагается исходный код для класса активности.
public class WalkAbout extends MapActivity {
//for Hello_mapview
List<Overlay> mapOverlays;
Drawable drawable;
private MapView m_vwMap;
private MapController m_mapController;
private PathOverlay m_pathOverlay;
private MyLocationOverlay m_locationOverlay;
private ArrayList<GeoPoint> m_arrPathPoints;
private ArrayList<OverlayItem> m_arrPicturePoints;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initLocationData();
initLayout();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
private void initLocationData() {
// TODO
}
private void initLayout() {
//instantiate XML File into corresponding view objects.
//Then inflate new view from XML resource.
setContentView(R.layout.map_layout);
MapView m_vwMap = (MapView)findViewById(R.id.mapview);
m_vwMap.setBuiltInZoomControls(true);
m_vwMap.setSatellite(true);
//retrieve list of overlay objects
mapOverlays=m_vwMap.getOverlays();
//set market for overlays
drawable=this.getResources().getDrawable(R.drawable.item);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
//create OverlayItem with my location
m_locationOverlay= new MyLocationOverlay(this, m_vwMap);
//enable market to set location and direction
m_locationOverlay.enableCompass();
m_locationOverlay.enableMyLocation();
mapOverlays.add(m_locationOverlay);
}
}
Я не вижу, где вы на самом деле используете свой «Drawable» для чего-либо. Вы создаете оверлей, но вы на самом деле ничего не вкладываете в него или не устанавливаете свой маркер в свой drawable. Я также не понимаю, почему вы так не склонны создавать другой класс. Похоже, у вас уже есть один под названием MyLocationOverlay. –