gpt4 book ai didi

java - 使用片段我想获取Android中的当前位置

转载 作者:行者123 更新时间:2023-11-30 06:53:06 24 4
gpt4 key购买 nike

public class MapViewFragment  extends Fragment implements LocationListener

public MapViewFragment() {
// Required empty public constructor
}


public static MapViewFragment newInstance(String tabSelected) {
MapViewFragment fragment = new MapViewFragment();
Bundle args = new Bundle();
args.putString(Constants.FRAG_D, tabSelected);
fragment.setArguments(args);

return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MapsInitializer.initialize(getActivity());

if (mapView != null) {
mapView.onCreate(savedInstanceState);
}
initializeMap();
}

private void initializeMap() {
if (googleMap == null && mapsSupported) {
mapView = (MapView) getActivity().findViewById(R.id.map);
googleMap = mapView.getMap();
//setup markers etc...
}
}





@Override
public void onResume() {
super.onResume();
Marker m1,m2,m3;
m1 = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(38.609556, -1.139637))
.anchor(0.5f, 0.5f)
.title("Title1")
.snippet("Snippet1"));


m2 = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(40.4272414,-3.7020037))
.anchor(0.5f, 0.5f)
.title("Title2")
.snippet("Snippet2"));

mapView.onResume();
initializeMap();
}

@Override
public void onPause() {
super.onPause();
mapView.onPause();
}

@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}

@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}

@Override
public void onLocationChanged(Location location) {

}

我的代码如上所示。我可以在 Android studio 中手动设置两个标记,但我想从当前位置获取一个标记。有什么帮助,或者有什么想法吗?

最佳答案

首先尝试这个:

googleMap.setMyLocationEnabled(true);

这将在页面右上角显示箭头,如果启用,您可以通过该箭头看到您的位置。此按钮还将触发 google api 的 onMyLocationButtonClick() 函数。

然后获取当前位置信息:

    Criteria criteria = new Criteria();
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
double latitude = location.getLatitude();
double longitude = location.getLongitude();
myPosition = new LatLng(latitude, longitude);

最后在上面添加你的标记:

googleMap.addMarker(new MarkerOptions().position(myPosition).title("Marker"));

有关异常(exception)情况和更多信息:https://developers.google.com/maps/documentation/android-api/location

关于java - 使用片段我想获取Android中的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42367681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com