Как переместить маркер (текущий маркер) на карте Google, как устройство движется в Android

Как переместить маркер (как точка) на карте Google при перемещении устройства (пользователь перемещается).....

import android.content.Context;
import android.widget.Toast;

import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;

// This class subclasses (extends) MyLocationOverlay so that we can override its dispatchTap method
// to handle tap events on the present location dot.

public class MyMyLocationOverlay extends MyLocationOverlay {

private Context context;

public MyMyLocationOverlay(Context context, MapView mapView) {
    super(context, mapView);
    this.context = context;   // Will need this for Toast argument below
}

// Override the dispatchTap() method to toggle the data display on and off when
// the present location dot is tapped. Also display a short Toast (transient message) to the
// user indicating the display status change.

@Override
protected boolean dispatchTap(){
    if(DisplayOverlay.showData){ 
        Toast.makeText(context, "Suppressing data readout", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(context,"Display data readout", Toast.LENGTH_SHORT).show();
    }
    // Toggle the GPS data display
    DisplayOverlay.showData = ! DisplayOverlay.showData;
    return true;
}

1 ответ

Проверь мой пост, ответ там был, ссылка.

как отобразить карту в андроид с маркером

для перемещения маркера на карте вам нужно создать статический метод в вашем классе, который расширяет MapActivity, как

private static GeoPoint markerPoint;

public static void updateLocation(Location location){
   lat = location.getLatitude();
   lng = location.getLongitude();

   // now use this lat/lng value to convert into the GeoPoint object

   markerPoint = new GeoPoint(lat * 1e6, lng * 1e6);
   mapview.invalidate();
}

Ваш пользовательский класс наложения, который расширяет класс Overlay.

public void draw(Canvas canvas, MapView mapView, boolean Shadow){
    Point screenPts = new Point();
    mapView.getProjection().toPixels(markerPoint, screenPts);
    //---add the marker---
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.cur_loc_1);
    canvas.drawBitmap(bmp, screenPts.x-(xCurLocOffset), screenPts.y-yCurLocOffset, null);
}

здесь, чтобы отобразить отображаемое изображение с помощью класса Bitmap для рисования изображения на карте.

Другие вопросы по тегам