Как добавить еще один элемент наложения в карту Android

Мне нужно добавить еще один элемент наложения в представление карты. Я использовал стандартное руководство для разработчиков Android по картам Google. В настоящее время у меня есть представление карты на вкладке. Я был бы очень признателен за любые идеи. Спасибо.

Ниже приведены мои классы Java:

public class Mapview extends MapActivity {

    protected boolean isRouteDisplayed(){
        return false;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapview);

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        // JD sports marker begin
        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources()
                .getDrawable(R.drawable.jd_sports_logo);
        //Passes drawable(jd sports logo) into HelloItemizedOverlay class
        HelloItemizedOverlay itemizedoverlay = 
                new HelloItemizedOverlay(drawable);

        double latitude = 51.545538;
        double longitude = -0.477247;
        GeoPoint point = new GeoPoint((int)(latitude * 1e6), 
                (int)(longitude * 1e6));

        OverlayItem overlayitem = new OverlayItem(point, "JD Sports", 
                "This is a sports shop");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        // JD sports marker ends

        // Fitness first marker begin
        List<Overlay> mapOverlays1 = mapView.getOverlays();
        Drawable drawable1 = this.getResources()
                .getDrawable(R.drawable.fitness_first_logo);
        HelloItemizedOverlay itemizedoverlay1 = 
                new HelloItemizedOverlay(drawable);

        double latitude1 = 51.545157;
        double longitude1 = -0.477247;
        GeoPoint point1 = new GeoPoint((int)(latitude * 1e6), 
                (int)(longitude * 1e6));

        OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports",
                "This is a sports shop");

        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        // Fitness first marker ends
    }

}

Мой класс HelloItemizedOverlay:

public class HelloItemizedOverlay extends ItemizedOverlay {

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    private ArrayList<OverlayItem> mOverlays1 = new ArrayList<OverlayItem>();

    public HelloItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));

    }

    public void addOverlay(OverlayItem overlay) {

        mOverlays.add(overlay);
        populate();
    }

    public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
        super(defaultMarker);
        Context mContext = context;
    }

    @Override
    protected OverlayItem createItem(int i) {
        // TODO Auto-generated method stub
        return mOverlays.get(i);
    }

    @Override
    public int size() {
        // TODO Auto-generated method stub
        return mOverlays.size();
    }

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

}

person Roger    schedule 31.01.2011    source источник
comment
в чем проблема добавить еще один слой так же, как вы сделали с первым itemizedoverlay.addOverlay(overlayitem), и было бы лучше, если бы вы могли отформатировать весь код как код...   -  person Necronet    schedule 31.01.2011


Ответы (2)


OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports, ...

Должен прочесть

OverlayItem overlayitem1 = new OverlayItem(point1, "JD Sports", ...

Разве не должно?

person bornet    schedule 20.02.2011

Попробуй это:

...
Drawable drawable1 = this.getResources()
            .getDrawable(R.drawable.fitness_first_logo);
boundCenterBottom(drawable1);
...
person MSquare    schedule 03.06.2012