我正在使用Android工作室制作一个基本的谷歌地图应用程序,我需要做的第一件事就是在应用程序打开后立即显示我的当前位置。我正在使用谷歌地图活动模板,我已经用Google Maps API指南页面中的一个取代了悉尼虚拟坐标功能,但它仍然没有做到这一点。我非常感谢帮助我前进。
答案 0 :(得分:0)
您需要拥有位置权限,但我相信通过实现接口OnMyLocationButtonClickListener
和OnMyLocationClickListener
,您所寻找的内容相对简单。查看文档here
答案 1 :(得分:0)
您需要获取FusedLocationProviderClient:
FusedLocationProviderClient mFusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(this);
试试这个:
private void getDeviceLocation() {
try {
if (mLocationPermissionGranted) {
Task locationResult = mFusedLocationProviderClient.getLastLocation();
locationResult.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
imHere = (Location) task.getResult();
LatLng latLng = new LatLng(imHere.getLatitude(), imHere.getLongitude());
MarkerOptions markerOptions = getMarkerOptions(latLng, "You here",
BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
imHereMarker = mMap.addMarker(markerOptions);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, DEFAULT_ZOOM));
} else {
Log.d(TAG, "Current location is null. Using defaults.");
Log.e(TAG, "Exception: %s", task.getException());
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mDefaultLocation, DEFAULT_ZOOM));
mMap.getUiSettings().setMyLocationButtonEnabled(false);
}
}
});
}
} catch(SecurityException e) {
Log.e("Exception: %s", e.getMessage());
}
}