Android开发百度地图路径规划

阅读: 评论:0

Android开发百度地图路径规划在集成百度地图路径规划的时候遇到⼀些坑,还好解决了,特此记录⼀下,话不多说了,上步骤。
默认已经集成地图。
先看效果图
背景地图已通过添加图⽚打码.
1.初始化
private void initGh() {
OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
@Override
public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
Log.e("leo","ok?");
//创建WalkingRouteOverlay实例
WalkingRouteOverlay overlay = new WalkingRouteOverlay(mBaiduMap);
if (RouteLines().size() > 0) {
Log.e("leo","开始");
/
/获取路径规划数据,(以返回的第⼀条数据为例)
//为WalkingRouteOverlay实例设置路径数据
广州一日游最佳路线
overlay.RouteLines().get(0));
//在地图上绘制WalkingRouteOverlay
overlay.addToMap();
Log.e("leo","结束");
}else {
Toast.makeText(MainActivity.this, "⽆线路规划", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
}
@Override
public void onGetMassTransitRouteResult(MassTransitRouteResult massTransitRouteResult) {        }
@Override
public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
}
@Override
public void onGetIndoorRouteResult(IndoorRouteResult indoorRouteResult) {
}
@Override
public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
}
};
mSearch = wInstance();
// 步⾏线路搜索
mSearch.setOnGetRoutePlanResultListener(listener);
}
设置路线规划检索监听,有步⾏,骑⾏,驾车监听回掉,我们这⾥只以步⾏举例
2.引⼊Demo中的Overlay⽂件,这⾥以步⾏路线规划为例百度Demo中均有,在此再粘贴⼀下
WalkingRouteOverlay.class
stbaidumap.Route;
stbaidumap.Route;
aphics.Color;
import android.os.Bundle;
import android.util.Log;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.Polyline;
import com.baidu.mapapi.map.PolylineOptions;
import com.del.LatLng;
import com.baidu.ute.WalkingRouteLine;
import java.util.ArrayList;
import java.util.List;
/**
* ⽤于显⽰步⾏路线的overlay,⾃3.4.0版本起可实例化多个添加在地图中显⽰ */
public class WalkingRouteOverlay extends OverlayManager {
private WalkingRouteLine mRouteLine = null;
public WalkingRouteOverlay(BaiduMap baiduMap) {
super(baiduMap);
}
/**
* 设置路线数据。
*
* @param line
*            路线数据
*/
public void setData(WalkingRouteLine line) {
mRouteLine = line;
}
@Override
public final List<OverlayOptions> getOverlayOptions() {
if (mRouteLine == null) {一个女孩讲述巴厘岛旅游故事
return null;
}
List<OverlayOptions> overlayList = new ArrayList<OverlayOptions>();        if (AllStep() != null
&& AllStep().size() > 0) {
for (WalkingRouteLine.WalkingStep step : AllStep()) {                Bundle b = new Bundle();
b.putInt("index", AllStep().indexOf(step));
if (Entrance() != null) {
overlayList.add((new MarkerOptions())
.Entrance().getLocation())
.rotate((360 - Direction()))
.zIndex(10)
.anchor(0.5f, 0.5f)
.extraInfo(b)
.icon(BitmapDescriptorFactory
.fromAssetWithDpi("Icon_line_node.png")));
}
// 最后路段绘制出⼝点
if (AllStep().indexOf(step) == (mRouteLine湖南红旅游景点
if (AllStep().indexOf(step) == (mRouteLine
.getAllStep().size() - 1) && Exit() != null) {
overlayList.add((new MarkerOptions())
.Exit().getLocation())
.anchor(0.5f, 0.5f)
.zIndex(10)
.icon(BitmapDescriptorFactory
.fromAssetWithDpi("Icon_line_node.png")));
}
}
}
/
/ starting
if (Starting() != null) {
overlayList.add((new MarkerOptions())
.Starting().getLocation())
.icon(getStartMarker() != null ? getStartMarker() :
BitmapDescriptorFactory
.fromAssetWithDpi("Icon_start.png")).zIndex(10));
}
// terminal
if (Terminal() != null) {
overlayList
.
add((new MarkerOptions())
.Terminal().getLocation())
.icon(getTerminalMarker() != null ? getTerminalMarker() :
BitmapDescriptorFactory
.fromAssetWithDpi("Icon_end.png"))
.zIndex(10));
}
// poly line list
if (AllStep() != null
&& AllStep().size() > 0) {
LatLng lastStepLastPoint = null;
for (WalkingRouteLine.WalkingStep step : AllStep()) {
List<LatLng> watPoints = WayPoints();
if (watPoints != null) {
List<LatLng> points = new ArrayList<LatLng>();
if (lastStepLastPoint != null) {
points.add(lastStepLastPoint);
}
上海迪士尼怎么预约入园points.addAll(watPoints);
overlayList.add(new PolylineOptions().points(points).width(10)
.color(getLineColor() != 0 ? getLineColor() : Color.argb(178, 0, 78, 255)).zIndex(0));                    lastStepLastPoint = (watPoints.size() - 1);
}
}
}
return overlayList;
}安康旅游景点及自驾游路线图
/**
* 覆写此⽅法以改变默认起点图标
*
* @return 起点图标
*/
public BitmapDescriptor getStartMarker() {
return null;
}
public int getLineColor() {
return 0;
}
/**
/**
* 覆写此⽅法以改变默认终点图标
*
* @return 终点图标
*/
public BitmapDescriptor getTerminalMarker() {
return null;
}
/**
* 处理点击事件
*
* @param i
*            被点击的step在
*            {@link com.baidu.ute.WalkingRouteLine#getAllStep()}    *            中的索引
* @return 是否处理了该点击事件
*/
public boolean onRouteNodeClick(int i) {
if (AllStep() != null
&& AllStep().get(i) != null) {
Log.i("baidumapsdk", "WalkingRouteOverlay onRouteNodeClick");
}
return false;
}
@Override
public final boolean onMarkerClick(Marker marker) {
for (Overlay mMarker : mOverlayList) {
if (mMarker instanceof Marker && mMarker.equals(marker)) {
if (ExtraInfo() != null) {
ExtraInfo().getInt("index"));
}
}
}
return true;
}
@Override
public boolean onPolylineClick(Polyline polyline) {
// TODO Auto-generated method stub
return false;
}
}
OverlayManager.class
stbaidumap.Route;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnPolylineClickListener;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.OverlayOptions;香格里拉酒店介绍
import com.del.LatLngBounds;
import java.util.ArrayList;
import java.util.List;
import static com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener;
/**
* 该类提供⼀个能够显⽰和管理多个Overlay的基类

本文发布于:2023-09-05 19:50:01,感谢您对本站的认可!

本文链接:http://www.035400.com/whly/4/224669.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:规划   地图   路径   百度   数据
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2024-2030 Comsenz Inc.Powered by © 文化旅游网 滇ICP备2022007236号-403 联系QQ:1103060800网站地图