今日工作
1.整理了导航的代码
//初始化导航路线
private void initBNRoutePlan(LatLng source, LatLng destination, String destinationName) {
BNRoutePlanNode startNode = new BNRoutePlanNode(source.longitude, source.latitude, "我", null, BNRoutePlanNode.CoordinateType.BD09LL);
BNRoutePlanNode endNode = new BNRoutePlanNode(destination.longitude, destination.latitude, destinationName, null, BNRoutePlanNode.CoordinateType.BD09LL);
if (startNode != null && endNode != null) {
ArrayList<BNRoutePlanNode> lst = new ArrayList<>();
lst.add(startNode);
lst.add(endNode);
MyRoutePlanListener myRoutePlanListener = new MyRoutePlanListener(lst);
BaiduNaviManager.getInstance().launchNavigator(MainActivity.this, lst, 1, true, myRoutePlanListener);
}
}
2.在百度地图开放平台找有关资料时,发现好像可以在导航时将一个Drawable设置到底图上,可随底图一起移动
(http://lbsyun.baidu.com/index.php?title=android-navsdk/guide/navigation)
如果可以的话我们就不必做分屏了...
1创建自定义图层
通过new一个BNItemizedOverlay对象可以创建一个新的自定义图层,构造方法参数传入默认显示的drawable,如:BNItemizedOverlay overlay = new BNItemizedOverlay(BNNewIFNormalDemoGuideActivity.this.getResources().getDrawable(R.drawable.navi_guide_turn));
2添加图层元素
向图层添加元素之前,先创建对应的元素对象,如:BNOverlayItem item = new BNOverlayItem(2563047.686035, 1.2695675172607E7, BNOverlayItem.CoordinateType.BD09_MC),表示在指定坐标系的坐标点创建一个元素。
然后通过 overlay.addItem(item) 接口将其添加到图层。
3显示隐藏图层
可以通过调研Overlay的show()和hide()来显示和隐藏图层,如overlay.show()。
4示例代码
private void showOverlay() {
BNOverlayItem item =
new BNOverlayItem(2563047.686035, 1.2695675172607E7, BNOverlayItem.CoordinateType.BD09_MC);
BNItemizedOverlay overlay = new BNItemizedOverlay(
BNNewIFNormalDemoGuideActivity.this.getResources().getDrawable(R.drawable
.navi_guide_turn));
overlay.addItem(item);
overlay.show();
}
明日工作
-
把之前遗留的导航小bug修一下,如导航时不加载地图、没有声音等问题。
-
尝试在导航时加入overlay实时显示。
今日小结
确定了导航时显示overlay的可行性。
同时分屏的功能也在适当推进。