您好,您能帮我如何获得Google地图片段中的当前位置吗?
我在应用程序中使用NavigationDrawer
,并且将地图显示为Fragment。
但是我找不到显示用户当前位置的解决方案。
这是我片段的代码:我只包含了几种方法。
public class MapFragment extends Fragment implements OnMapReadyCallback {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_map, container, false);
SupportMapFragment mapFragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map1);
mapFragment.getMapAsync(this);
return v;
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
}
我能够将当前位置设置为普通MapView
,但不能分段。
答案 0 :(得分:0)
首先,您必须提交申请This Permission
然后,您需要获取设备的当前位置:
LocationManager lm = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
现在您有了坐标(经度,纬度),然后实例化LatLng对象:
LatLng yourLocation = new LatLng(latitude, longitude);
现在将相机移动到您当前的位置:
map.moveCamera(CameraUpdateFactory.newLatLngZoom(yourLocation, 13));
第一个参数是目的地,而13是缩放级别
有什么问题吗?