0

私の最後の既知の場所は更新されていませんが、googlemap.setMyLocationEnable(true)私の場所は更新されています。誰でも助けることができますか?これが私のコードです:

private void setUpMap() {

    if(googlemap == null) {

        googlemap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

        if(googlemap != null) {         
            googlemap.setMyLocationEnabled(true);

            LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);

            String provider = lm.getBestProvider(new Criteria(), true);

            if (provider == null){
                onProviderDisabled(provider);
            }

            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
            Location loc = lm.getLastKnownLocation(provider);

            if (loc != null) {
                onLocationChanged(loc);
            }

            googlemap.setOnMapLongClickListener(onLongClickMapSettings());
        }
    }
}

private OnMapLongClickListener onLongClickMapSettings() {
    // TODO Auto-generated method stub
    return new OnMapLongClickListener() {

        @Override
        public void onMapLongClick(LatLng arg0) {
            // TODO Auto-generated method stub
            Log.i(arg0.toString(), "User long clicked");
        }
    };
}

@Override
public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    LatLng latlng = new LatLng(location.getLatitude(), location.getLongitude());

    googlemap.moveCamera(CameraUpdateFactory.newLatLng(latlng));
    googlemap.animateCamera(CameraUpdateFactory.zoomTo(15));

    Marker ME = googlemap.addMarker(new MarkerOptions()
    .position(latlng)
    .title("Current Location(You)")
    .snippet("Current")
    .icon(BitmapDescriptorFactory.fromResource(R.drawable.user_marker)));

}
4

1 に答える 1

1

Android で Google マップを使用する古い方法と新しい方法を混在させていると思います。

新しい方法 (v2、推奨) を使用する場合、LocationManager をインスタンス化して、それを使用して位置情報の更新を要求する必要はありません。

公式ドキュメントで、適切な方法で物事を行う方法を確認してください: https://developer.android.com/training/location/receive-location-updates.html

LocationListenerもちろん、LocationRequestオブジェクトを作成するときに、必要に応じて正しいパラメーターを設定する必要があります。

Android 用 API の v2 バージョンを使用していない場合は、https://developer.android.com/google/play-services/location.htmlから開始することをお勧めします。

于 2013-10-14T13:10:01.683 に答える