Android MapView - PullRequest
       7

Android MapView

0 голосов
/ 09 февраля 2011

Я пытаюсь добавить оверлей для myLocation в Android. Карта отображается, а наложение - нет. Я получил оверлей для отображения с использованием отдельного класса, который расширяет ItemizedOverlay. Мне интересно, есть ли способ отобразить эту отдельную точку без создания отдельного класса?

Прилагается исходный код для класса деятельности.

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);
       }
}

1 Ответ

0 голосов
/ 09 февраля 2011

Вам нужно вызвать invalidate () для вашего m_vwMap, чтобы он сам перерисовался.

...