android高德地图源码,Android Fragment 导航
时间: 2023-11-22 11:53:37 浏览: 49
以下是Android Fragment 导航的高德地图源码,参考下面的代码:
1. 在build.gradle文件中添加高德地图的依赖:
```groovy
implementation 'com.amap.api:3dmap:latest_version'
implementation 'com.amap.api:navi:latest_version'
implementation 'com.amap.api:location:latest_version'
implementation 'com.amap.api:safety:latest_version'
```
2. 在xml布局文件中添加MapView:
```xml
<com.amap.api.maps.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. 在Fragment中初始化MapView:
```java
public class MapFragment extends Fragment implements OnMapReadyCallback {
private MapView mapView;
private AMap aMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
mapView = view.findViewById(R.id.map_view);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
return view;
}
@Override
public void onMapReady(AMap aMap) {
this.aMap = aMap;
// 设置地图属性
aMap.setMapType(AMap.MAP_TYPE_NORMAL);
aMap.moveCamera(CameraUpdateFactory.zoomTo(15));
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
```
4. 实现Fragment导航功能,在Activity中调用导航方法:
```java
public class MainActivity extends AppCompatActivity {
private MapView mapView;
private AMap aMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.map_view);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(AMap aMap) {
MainActivity.this.aMap = aMap;
// 设置地图属性
aMap.setMapType(AMap.MAP_TYPE_NORMAL);
aMap.moveCamera(CameraUpdateFactory.zoomTo(15));
}
});
Button btnNavigate = findViewById(R.id.btn_navigate);
btnNavigate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startNavigate();
}
});
}
private void startNavigate() {
NaviLatLng start = new NaviLatLng(39.989614, 116.481763);
NaviLatLng end = new NaviLatLng(39.983456, 116.315495);
List<NaviLatLng> wayPoints = new ArrayList<>();
wayPoints.add(new NaviLatLng(39.925846, 116.432765));
wayPoints.add(new NaviLatLng(39.90781, 116.412476));
wayPoints.add(new NaviLatLng(39.904131, 116.406501));
AmapNavi.getInstance(this).calculateDriveRoute(start, end, wayPoints, PathPlanningStrategy.DRIVING_MULTIPLE_ROUTES_AVOID_CONGESTION, new OnCalculateRouteListener() {
@Override
public void onCalculateRouteSuccess(int[] ints) {
Intent intent = new Intent(MainActivity.this, RoutePlanActivity.class);
intent.putExtra("gps", true);
startActivity(intent);
}
@Override
public void onCalculateRouteFailure(int i) {
Toast.makeText(MainActivity.this, "路线计算失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onNaviRouteNotify(int i, String s) {
}
});
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)