Как проложить стрелку без использования карт google api

Я новичок в приложениях для Android и навигации. Я разрабатываю навигационное приложение так же, как Google Navigation, но с другим путем. Я могу получить свой собственный путь. Теперь я хочу показать свой путь в приложении так же, как и приложение Google Navigation. Но я не хочу использовать API навигации Google. В приложении навигации Google они отображают текущую позицию стрелкой.

Кто-нибудь знает, как использовать одно и то же представление? Или кто-нибудь может дать мне какие-то подсказки, где я должен искать?

Ответ 1

Android Asset Studio - неплохой веб-сайт для значков, вы можете создать один очень похожий на обычный маркер карт Google.

Добавление маркера к карте выполняется с использованием оверлей в android. Код ниже находится в действии onCreate, который расширяет MapActivity.

MapView myMap = ((MapView)findViewById(R.id.myMapView));
Drawable marker = getResources().getDrawable(R.drawable.marker);
List<Overlay> mapOverlays = null;
GeoPoint point = new GeoPoint(Latitude, Longitude)

myOverlays overlays = new myOverlays(marker, this);
Overlay item oi = new OverlayItem(point, "Desc", "");
overlays.add(oi);
mapOverlays = myMap.getOverlays();
mapOverlays.add(overlays);

класс myOverlays:

import java.util.ArrayList;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

@SuppressWarnings("rawtypes")
public class myOverlays extends ItemizedOverlay {
    private ArrayList<OverlayItem> overlays = new ArrayList<OverlayItem>();
    Context context;

    public myOverlays(Drawable marker) {
        super(boundCenter(marker));
    }

    public myOverlays(Drawable marker, Context act) {
        super(boundCenter(marker));
        context = act;
    }

    public void addOverlay(OverlayItem overlay) {
        overlays.add(overlay);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return overlays.get(i);
    }

    @Override
    public int size() {
        return overlays.size();
    }
}