我找到了这段代码
private void centerMapOnMyLocation() {
map.setMyLocationEnabled(true);
location = map.getMyLocation();
if (location != null) {
myLocation = new LatLng(location.getLatitude(),
location.getLongitude());
}
map.animateCamera(CameraUpdateFactory.newLatLngZoom(myLocation,
Constants.MAP_ZOOM));
}
但getMyLocation()已被删除。 我如何确定我的位置并首先在我的地图上显示。
我的代码现在是:
public class FragmentMap extends Fragment implements OnMapReadyCallback {
MapView mapView;
GoogleMap map;
TextView t1, t2;
private Marker marker;
public FragmentMap() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_map, container, false);
t1 = (TextView) v.findViewById(R.id.textView);
t2 = (TextView) v.findViewById(R.id.textView2);
mapView = (MapView) v.findViewById(R.id.mapview);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
return v;
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
map.getUiSettings().setZoomControlsEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.setMyLocationEnabled(true);
map.setOnMyLocationButtonClickListener(myLocationButtonClickListener);
}
private GoogleMap.OnMyLocationButtonClickListener myLocationButtonClickListener = new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
Location location = map.getMyLocation();
LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
t1.setText(valueOf(location.getLatitude()));
t2.setText(valueOf(location.getLongitude()));
marker = map.addMarker(new MarkerOptions().position(loc));
if(map != null){
map.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f));
}
return false;
}
};
我读过developers.android.com但没有找到答案。 我只需要在地图上显示我当前的位置。 Noghing更多
答案 0 :(得分:0)
以下行将为您提供当前的lat和lng。
double current_lat = mLastLocation.getLatitude();
double current_longi = mLastLocation.getLongitude();
it worked for me to get current location.Please follow this link for more details.
答案 1 :(得分:0)
这个tutorial可以帮助您在android中学习基于位置的服务。您可以选择两种类型的位置提供商,即GPS和NETWORK位置提供商。
以下是在Android中获取位置的步骤:
在清单文件中提供用于接收位置更新的权限
创建LocationManager
实例作为对位置服务的引用
从LocationManager
从LocationListener
获取有关位置更改的位置更新
有关更多信息和示例代码,请按照tutorial上的步骤进行操作。
另请查看此SO question,我认为它可以为您提供帮助。