2016-09-28 16 views
0

私のアプリケーションにgooglemapがありますが、マーカーの位置がどこにあり、マーカーがそこにあるのかが示されておらず、ユーザーがその場所を更新するたびにマーカーを更新する必要がありますまた、みんな助けてくれますか?感謝:)リンクの下に従ってください以上の場合Googleマップのマーカーがユーザーの場所に表示されない

public class GPSRenter extends AppCompatActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { 

GoogleMap mGoogleMap; 
GoogleApiClient mGoogleAPIClient; 
MarkerOptions options; 
final String TAG = this.getClass().getName(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(googleServicesAvailable()){ 
     setContentView(R.layout.activity_gpsrenter); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     initMap(); 
    }else{ 

    } 

} 

private void initMap() { 
    MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapFragment); 
    mapFragment.getMapAsync(this); 
} 

public boolean googleServicesAvailable(){ 
    GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
    int isAvailable = api.isGooglePlayServicesAvailable(this); 
    if(isAvailable == ConnectionResult.SUCCESS){ 
     return true; 
    }else if(api.isUserResolvableError(isAvailable)){ 
     Dialog dialog = api.getErrorDialog(this, isAvailable, 0); 
     dialog.show(); 
    }else{ 
     Toast.makeText(this, "Cant connect to Google Play Services", Toast.LENGTH_SHORT).show(); 
    } 
    return false; 
} 


@Override 
public void onMapReady(GoogleMap googleMap) { 
    mGoogleMap = googleMap; 
//  goToLocationZoom(39.008224, -76.8984527, 15); 
//  mGoogleMap.setMyLocationEnabled(true); 

    mGoogleAPIClient = new GoogleApiClient.Builder(this) 
          .addApi(LocationServices.API) 
          .addConnectionCallbacks(this) 
          .addOnConnectionFailedListener(this) 
          .build(); 
    mGoogleAPIClient.connect(); 
} 


LocationRequest mLocationRequest; 

@Override 
public void onConnected(Bundle bundle) { 
    mLocationRequest = LocationRequest.create(); 
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    mLocationRequest.setInterval(5000); 

    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleAPIClient, mLocationRequest, this); 

} 

@Override 
public void onConnectionSuspended(int i) { 

} 

@Override 
public void onConnectionFailed(ConnectionResult connectionResult) { 

} 

@Override 
public void onLocationChanged(Location location) { 
    if(location == null){ 
     Toast.makeText(this, "Can't get current location", Toast.LENGTH_SHORT).show(); 
    }else{ 

     LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); 
     Log.d(TAG, String.valueOf(location.getLatitude())); 
     Log.d(TAG, String.valueOf(location.getLongitude())); 
     CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, 18); 

     MarkerOptions options = new MarkerOptions() 
       .position(new LatLng(location.getLatitude(),location.getLatitude())) 
       .snippet("I am here"); 

     mGoogleMap.addMarker(options); 

     mGoogleMap.animateCamera(update); 

    } 
} 
} 
+0

あなたが調べてもらってくださいonLocationChangedと呼ばれるかどうか? –

+0

@HareshChhelana - それが呼び出されます。 'animateCamera'はうまくいきます。それはただの問題です。 –

+0

マーカーのアイコンを設定します。 –

答えて

0

バッツPogiはこの希望にしてみてください@これはあなたを助けることができます。..

Marker marker = googleMap.addMarker(new MarkerOptions() 
       .position(new LatLng(location.getLatitude(),location.getLatitude())) 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.yourImage))); 

..

https://developers.google.com/maps/documentation/android-api/marker

+0

私はそれを初期化した後、 'marker'をどこに置くべきですか? –

+0

私はどのようにして知った!ありがとう、あなたは私の日を救った!ハハハ –

+0

私はちょっとそれを修正し、それは良いです:) –

関連する問題