最后更新时间:2025-03-24
实现导航功能的最基本的步骤包括:初始化、路径规划、开启导航以及结束导航。
NavigatorZygote.with(context.getApplicationContext()).init(
NavigatorConfig.builder()
.setUserAgreedPrivacy(true) // 设置同意隐私协议
.setDeviceId("custom_device_id") // 设置自定义的设备ID,用于问题排查
.setDeviceModel(Build.MODEL) // 设置设备型号,帮助问题排查
.setDeveloperKey("developer_key") // 设置开发者KEY
.build()
);
NavigatorZygote.with(context.getApplicationContext()).start();
NavigatorDrive navigatorDrive = NavigatorZygote.with(context).navigator(NavigatorDrive.class);
NavigatorLayerRootDrive layerDrive;
// 1.通过NavigatorViewStub布局创建驾车地图层
NavigatorViewStub navigatorViewStub = findViewById(R.id.navigator_view_stub);
navigatorViewStub.setTravelMode(NavRouteReqParam.TravelMode.TravelModeDriving);
navigatorViewStub.inflate();
layerDrive = navigatorViewStub.getNavigatorView();
// 2.或者手动创建驾车地图层,并添加到你自己的ViewGroup
// layerDrive = NavigatorZygote.with(context).view(NavigatorLayerRootDrive.class);
// viewGroup.addView(layerDrive.getView());
NavigatorLayerViewDrive viewDrive = new NavigatorLayerViewDrive(context);
layerDrive.addViewLayer(viewDrive);
navigatorDrive.bindView(layerDrive);
navigatorDrive.searchRoute(
RoutePlanRequester.Companion.newBuilder(NavRouteReqParam.TravelMode.TravelModeDriving)
.start(new NavSearchPoint(39.984108, 116.308082))
.end(new NavSearchPoint(39.896938, 116.316483))
.build(),
(DriveRoutePlanRequestCallback) (navRoutePlan, error) -> {
if (error != null) {
// handle error
return;
}
if (navRoutePlan != null) {
// handle result
return;
}
}
);
// 使用算路结果中合法的路线ID开始导航
navigatorDrive.startNavigation(routeId);
// 使用算路结果中合法的路线ID开始模拟导航
navigatorDrive.simulator()
.setConfig(SimulatorConfig
.builder(SimulatorConfig.Type.REPLAY_LOCATIONS_FROM_FILE)
.setSimulateSpeed(55) // 设置模拟导航速度
.build()
)
.setEnable(true);
navigatorDrive.startNavigation(routeId);
// 结束导航
navigatorDrive.stopNavigation();
有帮助
没帮助