Загрузить поддельную карту на карту Google в Android - PullRequest
2 голосов
/ 16 ноября 2011

В моем приложении мне нужно наложить карту как изображение на MapView.Который будет скрывать реальную карту от пользователя.Когда пользователь увеличивает карту, накладываемое изображение также должно быть увеличено.Я пробовал использовать метод Mapoverlay, который используется для добавления булавок на карту, но он не соответствовал моим требованиям.

Любая идея будет очень полезна.

Заранее спасибо!

1 Ответ

1 голос
/ 16 ноября 2011

Вам необходимо создать свой собственный класс, который расширяет ItemizedOverlay, и в этом конструкторе классов вы можете установить маркер по умолчанию как изображение, которое вы хотите поместить на карту.

Примерно так.

public class MyOverlay extends ItemizedOverlay {

Context mContext;



@Override
   public void draw(Canvas canvas, MapView mapView, boolean shadow) {
// TODO Auto-generated method stub
super.draw(canvas, mapView, shadow);


    }
@Override
protected OverlayItem createItem(int i) {
    // TODO Auto-generated method stub

    return mOverlays.get(i).overlayItem;
}

public void addOverlay(OverlayItem overlay, int businessId) {

    populate();
}



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


@override
protected boolean onTap(int index) {

    return true;
}
}

В вашей оригинальной карте Activity вы должны сделать что-то подобное, чтобы использовать оверлей.

List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.myImage);
MyOverlay itemizedoverlay = new MyOverlay(drawable, context);
mapOverlays.add(itemizedoverlay);
...