Подтвердить что ты не робот

Как отображать карту в android с маркером

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

4b9b3361

Ответ 1

Если вы хотите показать только один элемент, 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 already added, just update its location
        mCurrentPointer.setLayoutParams(lp);
    }
}