1

私のアプリケーションでは、運転経路を設定してから GPS 追跡を開始します。移動場所の色を赤にします。Googleマップの方向APIを使用しています。方向パスを設定するには、正常に機能しています。しかし、GPS追跡は機能しません。

GPS と GPS トラッキング パスの色を有効にする方法を教えてください。

これが私のコードです:

public class MainActivity extends MapActivity implements LocationListener {

    private static final String Location = null;
    public MapView mapView ;
    public List<GeoPoint> geoPointsArray = new ArrayList<GeoPoint>();
    private LocationManager lm;
    private LogOverlay logOverlay;
    private GpsLog log;
    double lat;
    double lon;
    public GeoPoint  srcGeoPoint,destGeoPoint,interGeoPoint;

    public void onCreate(Bundle savedInstanceState) {           
    super.onCreate(savedInstanceState);   
    System.out.println("*************1**************1");
    setContentView(R.layout.activity_main);
    System.out.println("*************2**************");
    mapView = (MapView) findViewById(R.id.mapv); 
    mapView.setBuiltInZoomControls(true);
    System.out.println("*************3**************");
    lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 20000, 10,this);                           
    double src_lat = 12.98472; // the testing source 
    double src_long = 80.17778; 
    double dest_lat = 13.00833; // the testing destination 
    double dest_long =80.2125;         
    double via_lat = 13.065; // the testing destination 
    double via_long = 80.2325;
    srcGeoPoint = new GeoPoint((int) (src_lat * 1E6), 
    (int) (src_long * 1E6)); 
    destGeoPoint = new GeoPoint((int) (dest_lat * 1E6), 
    (int) (dest_long * 1E6)); 

    interGeoPoint = new GeoPoint((int) ( via_lat * 1E6), 
          (int) (via_long * 1E6));               
    mapView.getController().animateTo(srcGeoPoint);
    mapView.getController().setZoom(15);
    new LongOperation().execute("");       
    initMyLocation();  
    final MyLocationOverlay overlay = new MyLocationOverlay(this, mapView);
    overlay.enableMyLocation();
    overlay.enableCompass();
    mapView.invalidate();
    System.out.println("*************4**************");
}

private void initMyLocation() {
    System.out.println("init my location *************");
    // does not work in emulator                 
}
4

1 に答える 1

2

こんにちは、この不足しているコード スニペットを確認してください

// Adding current location on map view

private void addMyLocationOverlay() {
    myLocation = new MyLocationOverlay(this, mapView);
    mapView.getOverlays().add(myLocation);

    myLocation.enableMyLocation();

    myLocation.runOnFirstFix(new Runnable() {
        @Override
        public void run() {
            mapController.animateTo(myLocation.getMyLocation());
        }
    });

}

このコードは、マップビューに現在の位置をアニメーション化された青白の点滅ドットを表示します

ロケーションマネージャーと通話を使用する必要はありませんrequestLocationUpdates

于 2012-12-03T11:35:09.280 に答える