public class Navigation2
extends java.lang.Object
支持使用定制的路网数据进行导航,并可以编辑修改路网数据;
支持设置道路权重和限制,限速设置与提示;
支持设置障碍路段、障碍点、障碍节点;
支持引导路径风格设置;
支持自定义的GPS加密;
可以根据应用需要调整导引信息显示的布局,并提供矢量地图的地图旋转功能(参考setCarUpFront(boolean)
),网络地图暂不支持。
限定符和类型 | 方法和说明 |
---|---|
void |
addNaviInfoListener(NaviListener listener)
添加导航引导信息更新监听器
|
void |
addWayPoint(double x, double y)
设置途经点坐标
|
void |
cleanPath()
清除路径分析结果。
|
void |
enablePanOnGuide(boolean bPan)
引导过程中是否允许平移地图。
|
int[] |
getBarrierEdges()
获取障碍边集合
|
Point2Ds |
getBarrierPoints()
获取障碍点集合
|
double |
getCarAngle()
获取小车角度。
|
Point2D |
getCarPosition()
获取小车位置。
|
boolean |
getCarUpFront()
获取是否小车车头向上
|
double |
getGuideEndDistance()
获取导航结束距离,单位米
|
NaviPath |
getNaviPath()
|
double |
getNodeInterval()
获取分析点选择容限,单位米
|
int |
getPathID()
获取小车所在道路ID
|
GeoLine |
getRoute()
获取路径分析线路。
|
boolean |
isGuiding()
判断是否正在进行引导。
|
boolean |
isPassedRouteHidden()
是否隐藏走过的路线
|
boolean |
load()
加载网络模型。
|
boolean |
loadModel(java.lang.String filePath)
加载内存文件。
|
void |
locateMap()
导航中,小车在屏幕中居中显示
|
void |
pauseGuide()
暂停导航
|
void |
resumeGuide()
继续导航
|
boolean |
routeAnalyst()
最佳路径分析。
|
void |
setAzimuthChangeListener(AzimuthChangeListener listener)
设置方位角变化监听器。
|
void |
setBarrierEdges(int[] value)
设置障碍边
|
void |
setBarrierNodes(int[] value)
设置障碍节点
|
void |
setBarrierPoints(Point2Ds value)
设置障碍点
|
void |
setCarPicture(android.graphics.Bitmap carBmp)
设置小车图标。
|
void |
setCarSize(float width, float height)
设置小车图标尺寸
|
void |
setCarUpFront(boolean value)
设置小车车头是否向上,设置为true时就能实现地图旋转。
|
void |
setClimbChangeListener(ClimbChangeListener listener)
设置到终点的累计爬升监听器。
|
void |
setDatasetPoint(DatasetVector value)
设置高程点数据集。
|
void |
setDestinationPoint(double x, double y)
设置目的点。
|
void |
setDeviateTolerance(double tolerance)
添加导航偏移容限,单位米
|
void |
setGPSData(LocationManagePlugin.GPSData newGps)
设置GPS数据。
|
void |
setGuideEndDistance(double distance)
设置真实导航(status=0)结束距离。
|
void |
setIsAutoNavi(boolean isAutoNavi)
设置是否自动采集GPS,设置为false时,需用户自己调用setGPSData传入GPS数据。
|
void |
setIsEncryptGPS(boolean isEncryptGPS)
设置是否加密GPS数据,默认加密。
|
void |
setNetworkDataset(DatasetVector value)
设置用于分析的网络数据集。
|
void |
setNodeInterval(double interval)
添加分析点选择容限,单位米(只有当大于0时有效,否则启用默认容限)
|
void |
setPassedRouteHidden(Map map, boolean isAutoHidden)
设置是否隐藏走过的路线(当设置分析路径不可见时,此路径也不显示) 注意:如果要使用此接口,必须在路径分析之前调用
|
void |
setPathVisible(boolean isVisible)
设置分析路径是否可见。
|
void |
setRoadInfoVisibie(boolean visibie)
设置道路信息显示栏是否显示。
|
void |
setRouteStyle(GeoStyle value)
设置引导路径的样式
|
boolean |
setSimulationInterval(int interval)
设置模拟导航间隔时间(单位ms)
|
boolean |
setSimulationSpeed(double speed)
设置模拟导航速度(单位m/s)
|
void |
setSpeedField(java.lang.String value)
设置最高限速字段 限速字段是网络数据集(即
setNetworkDataset(com.supermap.data.DatasetVector) )中的一个记录速度的字段。 |
void |
setStartPoint(double x, double y)
设置起点。
|
void |
setTurnDataset(DatasetVector value)
设置转向表数据集。
|
boolean |
startGuide(int status)
开始引导。
|
boolean |
stopGuide()
停止引导。
|
public GeoLine getRoute()
public boolean startGuide(int status)
status
- 引导模式。0:真实导航, 1:模拟导航。public double getCarAngle()
public Point2D getCarPosition()
public boolean isGuiding()
public void cleanPath()
public boolean stopGuide()
public void setPathVisible(boolean isVisible)
isVisible
- 是否可见。public void setGPSData(LocationManagePlugin.GPSData newGps)
newGps
- GPS数据。public void setNetworkDataset(DatasetVector value)
value
- 网络数据集。public void setTurnDataset(DatasetVector value)
value
- 转向表数据集。public boolean load()
public boolean loadModel(java.lang.String filePath)
filePath
- 内存文件路径。public void setStartPoint(double x, double y)
x
- 起点x坐标。y
- 起点y坐标。public void setDestinationPoint(double x, double y)
x
- 终点x坐标。y
- 终点y坐标。public boolean routeAnalyst()
public void setIsEncryptGPS(boolean isEncryptGPS)
isEncryptGPS
- 设置是否加密。public void setCarPicture(android.graphics.Bitmap carBmp)
carBmp
- 小车图标。public void enablePanOnGuide(boolean bPan)
bPan
- 一个布尔值,用来指示在导航过程中是否允许平移地图,true,表示允许,false,表示不允许。public void setRoadInfoVisibie(boolean visibie)
visibie
- 是否显示。public void setDatasetPoint(DatasetVector value)
value
- 高程点数据集。public void setIsAutoNavi(boolean isAutoNavi)
isAutoNavi
- 是否自动采集GPS,默认自动采集。public void setClimbChangeListener(ClimbChangeListener listener)
listener
- 到终点的累计爬升监听器。public void setAzimuthChangeListener(AzimuthChangeListener listener)
listener
- 方位角变化监听器。public void addNaviInfoListener(NaviListener listener)
listener
- 引导信息更新监听器public int[] getBarrierEdges()
public Point2Ds getBarrierPoints()
public boolean getCarUpFront()
public NaviPath getNaviPath()
public int getPathID()
public void locateMap()
public void pauseGuide()
public void resumeGuide()
public void setBarrierEdges(int[] value)
value
- 障碍边集合(参数为null时,为清空障碍边);其包含的int值为网络数据集中的线数据的SmID值public void setBarrierNodes(int[] value)
value
- 障碍节点集合(参数为null时,为清空障碍节点);其包含的int值为网络数据集中的节点(Node)数据的SmID值public void setBarrierPoints(Point2Ds value)
value
- 障碍点集合(参数为null时,为清空障碍点)public void setCarSize(float width, float height)
width
- 图标显示宽度height
- 图标显示高度public void setCarUpFront(boolean value)
要使用地图旋转还需要提前开启整屏绘制功能,即使用Map.setFullScreenDrawModel(boolean)
, 然后再设置为车头向上,实现地图旋转。
目前地图旋转仅支持矢量地图的旋转,而网络地图不能旋转。
当地图为网络地图时,设置参数value=true,返回false,并会输出相应的日志信息; 当地图为矢量地图时,设置参数value=true,返回true; 设置参数value=false,总数返回成功,此时导航中地图不会旋转
使用示范如下:
map.open(mapName); // 打开地图 map.setFullScreenDrawModel(true); // 设置整屏绘制 navigation.setCarUpFront(true); // 设置车头向上,如果通过导航界面中的指南针按钮实现地图旋转,则可以不调用这一句,仅使用上一句即可
value
- 为true时,小车车头朝上;为false时,小车车头与行进的道路 一致public void setRouteStyle(GeoStyle value)
value
- 引导路径的样式public void setSpeedField(java.lang.String value)
限速字段是网络数据集(即setNetworkDataset(com.supermap.data.DatasetVector)
)中的一个记录速度的字段。 要求该字段类型为32位整型或双精度,字段值的单位为km/h;如模拟导航默认速度为18km/h,当行驶速度超过道路最高限速(如10km/h),将通过语音提示已经超速
value
- 速度字段名称public void setDeviateTolerance(double tolerance)
tolerance
- 导航偏移容限,单位米public boolean setSimulationSpeed(double speed)
speed
- 导航速度public boolean setSimulationInterval(int interval)
interval
- 导航间隔时间public void addWayPoint(double x, double y)
x
- 终点x坐标y
- 终点y坐标public void setNodeInterval(double interval)
interval
- 容限public double getNodeInterval()
public void setPassedRouteHidden(Map map, boolean isAutoHidden)
map
- map对象isAutoHidden
- 是否隐藏public boolean isPassedRouteHidden()
public void setGuideEndDistance(double distance)
distance
- 结束距离public double getGuideEndDistance()