只取代碼my other answer here,並修改按鈕點擊監聽請求另一個位置:
mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
if (mGoogleApiClient != null) {
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
return false;
}
});
在onLocationChanged()的代碼,然後將重新中心的攝像頭位置,並隨後註銷位置再次更新:
@Override
public void onLocationChanged(Location location)
{
mLastLocation = location;
if (mCurrLocationMarker != null) {
mCurrLocationMarker.remove();
}
//Place current location marker
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Current Position");
markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
mCurrLocationMarker = mGoogleMap.addMarker(markerOptions);
//move map camera
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(11));
if (mGoogleApiClient != null) {
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
}
}
這只是啓用按鈕(它也默認啓用)。您應該使用FusedLocationProviderApi獲取位置,然後將地圖攝像機移動/縮放到當前位置,請參閱此處的示例:http://stackoverflow.com/a/34582595/4409409 –
嘗試在該位置設置標記並那麼你會得到標記的點擊事件。 –
@DanielNugent我在第一次啓動地圖時獲得了地圖。當我在地圖上移動時,問題就出現了,並且想要通過該按鈕的點擊將當前位置顯示在屏幕上。 –