com.supermap.navi

类 Navigation

  • java.lang.Object
    • com.supermap.navi.Navigation


  • public class Navigation
    extends java.lang.Object
    导航类,导航类提供路径分析和引导功能。

  • 设置起点和目的地后,可以进行路径分析,并在分析成功后进行导航。
  • 路径分析包含四种模式:推荐、时间最快、距离最短和最少收费等。
  • 引导分为真实导航、模拟导航以及定位点巡航等三种模式。
  • 引导中提供引导信息的显示以及相关语音提示。

    导航中矢量地图旋转(参考setCarUpFront(boolean)}),不支持网络地图旋转

    注意:在启动引导后,外部传入GPS/BD等定位信息。

    • 方法详细资料

      • setStartPoint

        public void setStartPoint(double x,
                                  double y)
        设置路径规划的起点。
        参数:
        x - 起点经度坐标(度)。
        y - 起点纬度坐标(度)。
      • setDestinationPoint

        public void setDestinationPoint(double x,
                                        double y)
        设置路径规划的终点。
        参数:
        x - 终点经度坐标(度)。
        y - 终点纬度坐标(度)。
      • routeAnalyst

        public int routeAnalyst(int mode)
        执行路径分析。

        路径分析模式的值为[0,1,2,3],其分别表示推荐模式、时间最快模式、距离最短模式、和最少收费模式。

        参数:
        mode - 路径分析模式。
        返回:
        路径分析成功返回1,路径分析失败返回0,起点周围无道路返回-1,终点周围无道路返回-2。
      • getRoute

        public GeoLine getRoute()
        获得路径分析线路。
        返回:
        路径分析线路。
      • startGuide

        public boolean startGuide(int status)
        开始导航。

        引导状态的值为[0,1,2],其分别表示执行真实导航、执行模拟导航、执行定位点巡航。

        参数:
        status - 引导状态。
        返回:
        启动导航成功,返回true,否则返回false。
      • getCarAngle

        public double getCarAngle()
        获取车辆行驶角度。

        返回角度为车辆前进方向与正北方向的顺时针夹角,单位”度“。

        返回:
        车辆行驶角度。
      • getCarPosition

        public Point2D getCarPosition()
        获取车辆当前位置。

        即获取当前车辆所在地的经纬度坐标,单位“度”。

        返回:
        车辆当前位置。
      • connectNaviData

        public boolean connectNaviData(java.lang.String DataPath)
        链接导航数据,包括路径分析数据和引导数据。
        参数:
        DataPath - 导航数据文件所在路径。路径为绝对路径,所指目录中需放置"NaviMap",即路网数据在iDesktop中的编译结果
        返回:
        链接导航数据成功,返回true,否则返回false。
      • enablePanOnGuide

        public void enablePanOnGuide(boolean bPan)
        引导过程中是否允许平移地图。
        参数:
        bPan - 一个布尔值,用来指示在导航过程中是否允许平移地图,true,表示允许,false,表示不允许。
      • isGuiding

        public boolean isGuiding()
        当前是否在引导过程中。
        返回:
        当前在引导过程中,返回true,否则返回false。
      • cleanPath

        public void cleanPath()
        清除路径分析结果。
      • stopGuide

        public boolean stopGuide()
        停止引导。
        返回:
        停止引导成功,返回true,否则返回false。
      • setViewSize

        public boolean setViewSize(int width,
                                   int height)
        根据屏幕设置导航过程中引导信息布局,以适应横竖屏切换。
        参数:
        width - 屏幕宽度。
        height - 屏幕高度。
        返回:
        根据屏幕设置导航过程中引导信息布局成功,返回true,否则返回false。
      • setPathVisible

        public void setPathVisible(boolean isVisible)
        设置是否高亮显示规划出的路线。
        参数:
        isVisible - 一个布尔值,用来指示是否高亮显示规划出的路线,true,表示高亮显示,false,表示不高亮显示。
      • addNaviInfoListener

        public void addNaviInfoListener(NaviListener listener)
        添加导航引导信息更新监听器
        参数:
        listener - 引导信息更新监听器
      • getCarUpFront

        public boolean getCarUpFront()
        获取是否小车车头向上
        返回:
        小车车头向上,返回true;否则,返回false
      • getCurRoadName

        public java.lang.String getCurRoadName()
        获取当前道路名称
        返回:
        当前道路名
      • getDisToDestination

        public double getDisToDestination()
        获取当前位置到目的地距离
        返回:
        距离
      • getDisToSwerve

        public double getDisToSwerve()
        获取当前位置到下一路口距离
        返回:
        距离
      • getNaviAction

        public int getNaviAction()
        获取导航主动作
        返回:
        导航主动作
      • getNextRoadName

        public java.lang.String getNextRoadName()
        获取下一道路名称
        返回:
        道路名
      • resumeGuide

        public void resumeGuide()
        继续导航
      • pauseGuide

        public void pauseGuide()
        暂停导航
      • setCarUpFront

        public boolean setCarUpFront(boolean value)
        设置小车车头是否向上,设置为true时就能实现地图旋转。

        要使用地图旋转还需要提前开启整屏绘制功能,即使用Map.setFullScreenDrawModel(boolean), 然后再设置为车头向上,实现地图旋转。

        目前地图旋转仅支持矢量地图的旋转,而网络地图不能旋转。

        当地图为网络地图时,设置参数value=true,返回false,并会输出相应的日志信息; 当地图为矢量地图时,设置参数value=true,返回true; 设置参数value=false,总数返回成功,此时导航中地图不会旋转

        使用示范如下:

             map.open(mapName);                       // 打开地图
             map.setFullScreenDrawModel(true);        // 设置整屏绘制
             navigation.setCarUpFront(true);          // 设置车头向上,如果通过导航界面中的指南针按钮实现地图旋转,则可以不调用这一句,仅使用上一句即可
         
        参数:
        value - 为true时,小车车头朝上;为false时,小车车头与沿道路行进方向一致
        返回:
        设置成功返回true,否则返回false
      • setRouteStyle

        public void setRouteStyle(GeoStyle value)
        设置引导路径的风格
        参数:
        value - 引导路径的风格,即几何对象风格
      • getTimeToDestination

        public int getTimeToDestination(double speed)
        获取导航剩余时间
        参数:
        speed - 当前行驶速度
        返回:
        返回剩余时间
      • getPathRoadLevel

        public int getPathRoadLevel()
        获取导航时当前道路等级
        返回:
        返回道路等级值
      • getSecondaryAction

        public int getSecondaryAction()
        获取导航副动作
        返回:
        导航副动作值
      • addWayPoint

        public boolean addWayPoint(double x,
                                   double y)
        添加途经点
        参数:
        x - 途经点x坐标
        y - 途经点y坐标
        返回:
        添加成功,返回true; 否则返回false.
      • addBarrierPoint

        public boolean addBarrierPoint(double x,
                                       double y)
        添加障碍点
        参数:
        x - 障碍点的x坐标
        y - 障碍点的y坐标
        返回:
        添加成功,返回true, 否则返回false
      • clearBarrierPoints

        public boolean clearBarrierPoints()
        清除所有障碍点
        返回:
        清除成功返回true,否则返回false
      • addBarrierBound

        public boolean addBarrierBound(double left,
                                       double bottom,
                                       double right,
                                       double top)
        添加障碍区域,障碍区域只能是矩形的,通过该矩形区域上下左右的边界坐标值(经纬度坐标值)来确定障碍区域
        参数:
        left - 障碍区域的左边界坐标
        bottom - 障碍区域的右边界坐标
        right - 障碍区域的下边界坐标
        top - 障碍区域的上边界坐标
        返回:
        添加成功,返回true, 否则返回false
      • clearBarrierBound

        public boolean clearBarrierBound()
        清除障碍区域
        返回:
        清除成功,返回true, 否则返回false
      • getAdjust

        public int getAdjust()
        获取定位车辆位置与路网匹配状态
        返回:
        返回匹配状态值
      • setSimulationSpeed

        public boolean setSimulationSpeed(double speed)
        设置模拟导航速度,使小车按照设定速度行驶(单位m/s)
        参数:
        speed - 模拟导航行进速度
        返回:
        设置的速度有效,返回true,否则返回false,如设置一个负数
      • setSimulationInterval

        public boolean setSimulationInterval(int interval)
        设置模拟导航间隔时间(单位ms)
        参数:
        interval - 模拟导航间隔时间
        返回:
        设置的时间有效,返回true,否则返回false
      • setSpeechParam

        public boolean setSpeechParam(Navigation.SpeechParam speechparam)
        设置导航指引信息控制,用于控制导航中是否播报引导信息
        参数:
        speechparam - 引导播报控制类,参见Navigation.SpeechParam
        返回:
        设置成功,返回true, 否则返回false
      • locateMap

        public void locateMap()
        导航中,将小车位置作为地图中心。 当允许导航中平移地图时,移动地图后,可以通过该接口使小车一直在地图中心显示。
      • setEncryption

        public void setEncryption(Encryption encryption)
        设置加密器
        参数:
        encryption - 坐标加密算法Encryption
      • getNaviPath

        public NaviPath getNaviPath()
        获取导航路径的详情,具体道路信息请参考NaviPathNaviStep
        返回:
        返回当前导航路径的详情