com.supermap.navi

类 Navigation2

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


  • public class Navigation2
    extends java.lang.Object
    行业导航类,提供基于拓扑路网的路径分析与导引。

    支持使用定制的路网数据进行导航,并可以编辑修改路网数据;

    支持设置道路权重和限制,限速设置与提示;

    支持设置障碍路段、障碍点、障碍节点;

    支持引导路径风格设置;

    支持自定义的GPS加密;

    可以根据应用需要调整导引信息显示的布局,并提供矢量地图的地图旋转功能(参考setCarUpFront(boolean)),网络地图暂不支持。

    • 方法详细资料

      • getRoute

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

        public boolean startGuide(int status)
        开始引导。
        参数:
        status - 引导模式。0:真实导航, 1:模拟导航。
        返回:
        是否成功。
      • getCarAngle

        public double getCarAngle()
        获取小车角度。
        返回:
        小车角度。
      • getCarPosition

        public Point2D getCarPosition()
        获取小车位置。
        返回:
        小车位置。
      • isGuiding

        public boolean isGuiding()
        判断是否正在进行引导。
        返回:
        是否正在进行引导。
      • cleanPath

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

        public boolean stopGuide()
        停止引导。
        返回:
        是否成功。
      • setPathVisible

        public void setPathVisible(boolean isVisible)
        设置分析路径是否可见。
        参数:
        isVisible - 是否可见。
      • setNetworkDataset

        public void setNetworkDataset(DatasetVector value)
        设置用于分析的网络数据集。必选。
        参数:
        value - 网络数据集。
      • setTurnDataset

        public void setTurnDataset(DatasetVector value)
        设置转向表数据集。可选。
        参数:
        value - 转向表数据集。
      • load

        public boolean load()
        将网络数据集转化为网络模型并加载。
        返回:
        是否成功。
      • loadModel

        public boolean loadModel(java.lang.String filePath)
        加载网络模型文件。
        参数:
        filePath - 内存文件路径。
        返回:
        是否成功。
      • setStartPoint

        public void setStartPoint(double x,
                                  double y)
        设置起点。
        参数:
        x - 起点x坐标。
        y - 起点y坐标。
      • setDestinationPoint

        public void setDestinationPoint(double x,
                                        double y)
        设置目的点。
        参数:
        x - 终点x坐标。
        y - 终点y坐标。
      • routeAnalyst

        public boolean routeAnalyst()
        最佳路径分析。
        返回:
        是否成功。
      • setIsEncryptGPS

        public void setIsEncryptGPS(boolean isEncryptGPS)
        设置是否加密GPS数据,默认加密。
        参数:
        isEncryptGPS - 设置是否加密。
      • setCarPicture

        public void setCarPicture(android.graphics.Bitmap carBmp)
        设置小车图标。
        参数:
        carBmp - 小车图标。
      • enablePanOnGuide

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

        public void setRoadInfoVisibie(boolean visibie)
        设置道路信息显示栏是否显示。
        参数:
        visibie - 是否显示。
      • setDatasetPoint

        public void setDatasetPoint(DatasetVector value)
        设置高程点数据集。可选。
        参数:
        value - 高程点数据集。
      • setIsAutoNavi

        public void setIsAutoNavi(boolean isAutoNavi)
        设置是否自动采集GPS,设置为false时,需用户自己调用setGPSData传入GPS数据。
        参数:
        isAutoNavi - 是否自动采集GPS,默认自动采集。
      • setClimbChangeListener

        public void setClimbChangeListener(ClimbChangeListener listener)
        设置到终点的累计爬升监听器。
        参数:
        listener - 到终点的累计爬升监听器。
      • setAzimuthChangeListener

        public void setAzimuthChangeListener(AzimuthChangeListener listener)
        设置方位角变化监听器。
        参数:
        listener - 方位角变化监听器。
      • addNaviInfoListener

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

        public int[] getBarrierEdges()
        获取障碍边集合
        返回:
        障碍边的ID数组
      • getBarrierPoints

        public Point2Ds getBarrierPoints()
        获取障碍点集合
        返回:
        障碍点集合
      • getCarUpFront

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

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

        public int getPathID()
        获取小车所在道路ID
        返回:
        路径ID
      • locateMap

        public void locateMap()
        导航中,小车在屏幕中居中显示
      • pauseGuide

        public void pauseGuide()
        暂停导航
      • resumeGuide

        public void resumeGuide()
        继续导航
      • setBarrierEdges

        public void setBarrierEdges(int[] value)
        设置障碍边
        参数:
        value - 障碍边集合(参数为null时,为清空障碍边);其包含的int值为网络数据集中的线数据的SmID值
      • setBarrierNodes

        public void setBarrierNodes(int[] value)
        设置障碍节点
        参数:
        value - 障碍节点集合(参数为null时,为清空障碍节点);其包含的int值为网络数据集中的节点(Node)数据的SmID值
      • setBarrierPoints

        public void setBarrierPoints(Point2Ds value)
        设置障碍点
        参数:
        value - 障碍点集合(参数为null时,为清空障碍点)
      • setCarSize

        public void setCarSize(float width,
                               float height)
        设置小车图标尺寸
        参数:
        width - 图标显示宽度
        height - 图标显示高度
      • setCarUpFront

        public void 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时,小车车头与行进的道路 一致
      • setRouteStyle

        public void setRouteStyle(GeoStyle value)
        设置引导路径的样式
        参数:
        value - 引导路径的样式
      • setSpeedField

        public void setSpeedField(java.lang.String value)
        设置最高限速字段

        限速字段是网络数据集(即setNetworkDataset(com.supermap.data.DatasetVector))中的一个记录速度的字段。 要求该字段类型为32位整型双精度,字段值的单位为km/h;如模拟导航默认速度为18km/h,当行驶速度超过道路最高限速(如10km/h),将通过语音提示已经超速

        参数:
        value - 速度字段名称
      • setDeviateTolerance

        public void setDeviateTolerance(double tolerance)
        添加导航偏移容限,单位米
        参数:
        tolerance - 导航偏移容限,单位米
      • setSimulationSpeed

        public boolean setSimulationSpeed(double speed)
        设置模拟导航速度(单位m/s)
        参数:
        speed - 导航速度
        返回:
        是否设置成功
      • setSimulationInterval

        public boolean setSimulationInterval(int interval)
        设置模拟导航间隔时间(单位ms)
        参数:
        interval - 导航间隔时间
        返回:
        是否设置成功
      • addWayPoint

        public void addWayPoint(double x,
                                double y)
        设置途经点坐标
        参数:
        x - 终点x坐标
        y - 终点y坐标
      • setNodeInterval

        public void setNodeInterval(double interval)
        添加分析点选择容限,单位米(只有当大于0时有效,否则启用默认容限)
        参数:
        interval - 容限
      • getNodeInterval

        public double getNodeInterval()
        获取分析点选择容限,单位米
        返回:
        容限
      • setPassedRouteHidden

        public void setPassedRouteHidden(Map map,
                                         boolean isAutoHidden)
        设置是否隐藏走过的路线(当设置分析路径不可见时,此路径也不显示) 注意:如果要使用此接口,必须在路径分析之前调用
        参数:
        map - map对象
        isAutoHidden - 是否隐藏
      • isPassedRouteHidden

        public boolean isPassedRouteHidden()
        是否隐藏走过的路线
        返回:
        是否隐藏
      • setGuideEndDistance

        public void setGuideEndDistance(double distance)
        设置真实导航(status=0)结束距离。单位米
        参数:
        distance - 结束距离
      • getGuideEndDistance

        public double getGuideEndDistance()
        获取导航结束距离,单位米
        返回:
        结束距离
      • removeWayPoint

        public void removeWayPoint()
        移除所有途经点
      • setBarrierPointsDuringNavi

        public void setBarrierPointsDuringNavi(Point2Ds value)
        在导航进行中添加障碍点
        参数:
        value - 障碍点集合(参数为null时,为清空障碍点)
      • setSimpleVoiceMode

        public void setSimpleVoiceMode(boolean simpleVoiceMode)
        设置语音播报为精简模式。
      • isSimpleVoiceMode

        public boolean isSimpleVoiceMode()
        语音播报是否为精简模式。
      • isUseSensorAzimuth

        public boolean isUseSensorAzimuth()
        判断真实导航时导航图标方向是否使用传感器方向
        返回:
        true真实导航模式导航图标方向使用传感器方向,false真实导航模式导航图标方向指向最近导航路径方向
      • setUseSensorAzimuth

        public void setUseSensorAzimuth(boolean useSensorAzimuth)
        设置真实导航时导航时导航图标方向是否使用传感器方向 默认为true,仅真实导航该值有效。
        参数:
        useSensorAzimuth - 设置为true,真实导航模式下导航图标方向跟随手机传感器方向,设置为false,真实导航模式下导航图标方向为最近导航路径方向
      • routeAnalyst

        public boolean routeAnalyst(java.lang.String weightFieldName)
        最佳路径分析
        返回:
        最佳路径分析是否成功
      • setWeightFieldInfos

        public boolean setWeightFieldInfos(WeightFieldInfos infos)
        设置权重字段
        参数:
        infos - 权重字段信息
        返回:
        是否设置权重字段成功