快速开始

最后更新时间: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();

创建管理类

1.创建驾车 NavigatorDrive

NavigatorDrive navigatorDrive = NavigatorZygote.with(context).navigator(NavigatorDrive.class);

2.创建导航地图层 NavigatorLayerRootDrive

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());

3.创建默认面板 NavigatorLayerViewDrive,并添加到导航地图层

NavigatorLayerViewDrive viewDrive = new NavigatorLayerViewDrive(context);
layerDrive.addViewLayer(viewDrive);

4.将导航地图层绑定到Navigator

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();

常见问题

  • 进入导航已经设置了隐私接口为什么还出现崩溃?
    导航中设置设置导航隐私接口的同时也需要同意地图隐私接口:TencentMapInitializer.setAgreePrivacy(getApplicationContext(), true)。

  • 进入导航页面编译为什么会冲突
    使用新版本导航SDK内部已经依赖了定位和地图,外部就不可以再引入相关库。

  • 从定位和地图切到导航后如何使用地图和定位
    非导航界面地图使用方式和原地图SDK相同,定位可以参考导航的方式,接入期间存在问题可以工单联系我们帮您解答。

本页内容