android studio地图定位代码
时间: 2023-07-07 10:36:32 浏览: 85
以下是一个简单的Android Studio地图定位代码示例:
1. 在build.gradle文件中添加以下依赖:
```
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.1.0'
```
2. 在布局文件中添加MapView组件:
```
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. 在Activity中声明MapView和GoogleMap对象:
```
private MapView mapView;
private GoogleMap googleMap;
```
4. 在onCreate()方法中初始化MapView和GoogleMap:
```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap mMap) {
googleMap = mMap;
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.getUiSettings().setZoomControlsEnabled(true);
}
});
}
```
5. 在Activity中声明LocationManager和LocationListener对象:
```
private LocationManager locationManager;
private LocationListener locationListener;
```
6. 在onCreate()方法中初始化LocationManager和LocationListener,实现位置信息回调:
```
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(latLng).title("Current Location"));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
};
```
7. 在onResume()方法中注册位置信息监听器:
```
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
```
8. 在onPause()方法中移除位置信息监听器:
```
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
locationManager.removeUpdates(locationListener);
}
```
这样,就可以在Android Studio中实现地图定位功能了。当用户位置发生变化时,会在地图上显示当前位置的标记,并自动调整地图视角。
阅读全文