как отобразить карту в андроид с маркером - PullRequest
16 голосов
/ 26 мая 2011

Я работаю над приложением для Android, и я совершенно новичок в этом. Поэтому я хочу знать, как отобразить маркер на карте и как изменить его положение в определенное время, например, определить нить или что-нибудь в фоновом режиме, которое будет отправлять значения широты и долготы, и маркер перемещался на этом

1 Ответ

17 голосов
/ 26 мая 2011

Если вы собираетесь показать только один элемент, MapView.addView() и последующее обновление позиции с помощью setLayoutParams добьются цели.

private ImageView mCurrentPointer;

@Override
public void onLocationChanged(Location l) {
    int latitude = (int) (l.getLatitude() * 1e6);
    int longitude = (int) (l.getLongitude() * 1e6);
    // Prepare new LayoutParams object that centers on our new latitude/longitude
    MapView.LayoutParams lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, 
            MapView.LayoutParams.WRAP_CONTENT, new GeoPoint(latitude, longitude),
            MapView.LayoutParams.CENTER);

    if (mCurrentPointer == null) {
        // If "current location" pin is null, we haven't added it
        // to MapView yet. So instantiate it and add it to MapView:
        mCurrentPointer = new ImageView(this); 
        mCurrentPointer.setImageResource(R.drawable.ic_maps_indicator_current_position);
        mMapView.addView(mCurrentPointer, lp);
    } else {
        // If it's already added, just update its location
        mCurrentPointer.setLayoutParams(lp);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...