com.supermap.navi

类 Navigation3

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


  • public class Navigation3
    extends java.lang.Object
    室内导航类 与行业导航类似,提供基于拓扑路网的路径分析与导引。不同之处在于,在设置起点、终点或途径点时,需要设置其位于的楼层的ID,楼层ID可以通过与地图关联的FoorListView的FloorListView.getCurrentFloorId()获取

    支持使用定制的路网数据进行导航,并可以编辑修改路网数据,路网数据通过室内地图数据所在数据源与室内导航模块关联;

    支持模拟导航速度

    支持引导路径风格设置, 包括当前显示楼层和其他楼层的路径风格;

    支持自定义的GPS加密;

    提供矢量地图的地图旋转功能(参考setCarUpFront(boolean)),网络地图暂不支持。

    • 方法详细资料

      • getNaviPath

        public NaviPath getNaviPath()
        获取导航路径信息
        返回:
        导航路径信息对象
      • startGuide

        public boolean startGuide(int mode)
        开始引导
        参数:
        mode - 0:真实导航, 1:模拟导航 ,2:巡航 ,3:步行导航
        返回:
        是否成功
      • getCarAngle

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

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

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

        public int getResultIndex()
        获取小车所在分析路段
        返回:
        分析路段
      • enablePanOnGuide

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

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

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

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

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

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

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

        public void setDatasource(Datasource value)
        设置室内地图所在的数据源。必选
        参数:
        value - 数据源
      • setStartPoint

        public void setStartPoint(double x,
                                  double y,
                                  java.lang.String id)
        设置起点与楼层ID
        参数:
        x - 起点x坐标
        y - 起点y坐标
        id - 楼层ID
      • setDestinationPoint

        public void setDestinationPoint(double x,
                                        double y,
                                        java.lang.String id)
        设置目的点与楼层ID
        参数:
        x - 终点x坐标
        y - 终点y坐标
        id - 楼层ID
      • addWayPoint

        public void addWayPoint(double x,
                                double y,
                                java.lang.String id)
        设置途经点与楼层ID,需在设置起点和终点后,才能成功添加途径点
        参数:
        x - 终点x坐标
        y - 终点y坐标
        id - 楼层ID
      • setCurrentFloorId

        public void setCurrentFloorId(java.lang.String id)
        设置当前显示的楼层ID
        参数:
        id - 楼层ID
      • routeAnalyst

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

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

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

        public void setFloorChangeListener(FloorChangeListener listener)
        添加楼层变化监听器
        参数:
        listener - 楼层变化监听器
      • setAzimuthChangeListener

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

        public void setIsAutoNavi(boolean isAutoNavi)
        设置是否自动采集GPS。默认自动采集
        参数:
        isAutoNavi - 是否自动采集GPS
      • setCarSize

        public void setCarSize(float width,
                               float height)
        设置小车图标尺寸
        参数:
        width - 宽度
        height - 高度
      • 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时,小车车头与行进的道路 一致
        返回:
        是否设置成功
      • getCarUpFront

        public boolean getCarUpFront()
        获取是否小车车头向上
        返回:
        是否小车车头向上
      • setRouteStyle

        public void setRouteStyle(GeoStyle value)
        设置当前楼层引导路径的样式
        参数:
        value - 引导路径的样式
      • setHintRouteStyle

        public void setHintRouteStyle(GeoStyle value)
        设置其他楼层引导路径的样式
        参数:
        value - 引导路径的样式
      • addNaviInfoListener

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

        public void resumeGuide()
        继续导航
      • pauseGuide

        public void pauseGuide()
        暂停导航
      • setSimulationSpeed

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

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

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

        public double getSpeed()
        获取行驶速度,单位m/s
        返回:
        行驶速度
      • setSpeed

        public void setSpeed(double speed)
        设置行驶速度,单位m/s
        参数:
        speed - 行驶速度
      • getRoute

        public GeoLine[] getRoute()
        获得路径分析线路
        返回:
        分析线路
      • setPassedRouteHidden

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

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

        public void setGuideEndDistance(double distance)
        设置结束导航时距离目的地点的长度,单位米
        参数:
        distance - 结束导航时距离目的地点的长度
      • getGuideEndDistance

        public double getGuideEndDistance()
        获取结束导航时距离目的地点的长度,单位米
        返回:
        结束导航时距离目的地点的长度
      • setWayPointTolerance

        public void setWayPointTolerance(double tolerance)
        设置导航过程中途经点范围的容限值
        参数:
        tolerance - 途经点范围
      • getWayPointTolerance

        public double getWayPointTolerance(double tolerance)
        设置导航过程中途经点范围的容限值
        参数:
        tolerance - 途经点范围
        返回:
        容限值
      • setDrivingModeEnable

        public void setDrivingModeEnable(boolean drivingMode)
        设置是否是室内驾车模式
        参数:
        drivingMode - 默认为false
      • isDrivingModeEnable

        public boolean isDrivingModeEnable()
        设置是否是室内驾车模式
        返回:
        true为室内驾车模式
      • setAotuReRouteEnable

        public void setAotuReRouteEnable(boolean reRoute)
        设置偏航时是否自动重新规划路径,默认重新规划,室内驾车模式下有效。
        参数:
        reRoute - true为自动重新规划路径,false为偏航时不自动重新规划
      • isAotuReRouteEnable

        public boolean isAotuReRouteEnable()
        获取偏航时是否自动重新规划路径
        返回:
        true为自动重新规划路径,false为偏航时不自动重新规划
      • setNearestDoorMode

        public void setNearestDoorMode(boolean flag)
        设置最近门模式,为true则在路径分析时会自动选取最近的门位置作为始/终点
        参数:
        flag -
      • isNearestDoorMode

        public boolean isNearestDoorMode()
        判断是否为最近门模式
        返回:
        是否为最近门模式