Android 百度地图路径规划
2015-10-24 13:12
423 查看
本文提供的是百度地图路径规划写法中的乘坐公交车的路径规划方式
以下是本文涉及的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".RouteActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/startPoint_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="起点:" />
<EditText
android:id="@+id/startPoint_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="出发地..." >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/endPoint_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="终点:" />
<EditText
android:id="@+id/endPoint_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="目的地..." />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/drive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="驾车搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
<Button
android:id="@+id/bus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="公交搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
<Button
android:id="@+id/walk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="步行搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<com.baidu.mapapi.map.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
以下是本文涉及的具体类,所需jar包或用户权限请参考:Android
百度地图定位
public class RouteActivity extends Activity implements BaiduMap.OnMapClickListener,
OnGetRoutePlanResultListener{
private EditText editSt,editEn;
private MapView mapView;
private BaiduMap map;
private RoutePlanSearch search;
private RouteLine route;
private int nodeIndex = -1;
private OverlayManager routeOverlay = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_route);
mapView = (MapView) findViewById(R.id.map);
editSt = (EditText) findViewById(R.id.startPoint_et);
editEn = (EditText) findViewById(R.id.endPoint_et);
map = mapView.getMap();
map.setOnMapClickListener(this);
search = RoutePlanSearch.newInstance();
search.setOnGetRoutePlanResultListener(this);
}
public void SearchButton(View v){
route = null;
PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", editSt.getText().toString());
PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", editEn.getText().toString());
switch (v.getId()) {
case R.id.drive:
break;
case R.id.bus:
search.transitSearch((new TransitRoutePlanOption())
.from(stNode)
.city("北京")
.to(enNode));
break;
case R.id.walk:
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_route, menu);
return true;
}
@Override
public void onMapClick(LatLng arg0) {
map.hideInfoWindow();
}
@Override
public boolean onMapPoiClick(MapPoi arg0) {
return false;
}
@Override
public void onGetDrivingRouteResult(DrivingRouteResult result) {
}
@Override
public void onGetTransitRouteResult(TransitRouteResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(RouteActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
}
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
//起终点或途经点地址有岐义,通过以下接口获取建议查询信息
//result.getSuggestAddrInfo()
return;
}
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
nodeIndex = -1;
route = result.getRouteLines().get(0);
TransitRouteOverlay overlay = new TransitRouteOverlay(map);
map.setOnMarkerClickListener(overlay);
routeOverlay = overlay;
overlay.setData(result.getRouteLines().get(0));
overlay.addToMap();
overlay.zoomToSpan();
}
}
@Override
public void onGetWalkingRouteResult(WalkingRouteResult result) {
}
}
以下是本文涉及的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".RouteActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/startPoint_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="起点:" />
<EditText
android:id="@+id/startPoint_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="出发地..." >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/endPoint_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="终点:" />
<EditText
android:id="@+id/endPoint_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="目的地..." />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/drive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="驾车搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
<Button
android:id="@+id/bus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="公交搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
<Button
android:id="@+id/walk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="步行搜索"
android:onClick="SearchButton"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<com.baidu.mapapi.map.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
以下是本文涉及的具体类,所需jar包或用户权限请参考:Android
百度地图定位
public class RouteActivity extends Activity implements BaiduMap.OnMapClickListener,
OnGetRoutePlanResultListener{
private EditText editSt,editEn;
private MapView mapView;
private BaiduMap map;
private RoutePlanSearch search;
private RouteLine route;
private int nodeIndex = -1;
private OverlayManager routeOverlay = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_route);
mapView = (MapView) findViewById(R.id.map);
editSt = (EditText) findViewById(R.id.startPoint_et);
editEn = (EditText) findViewById(R.id.endPoint_et);
map = mapView.getMap();
map.setOnMapClickListener(this);
search = RoutePlanSearch.newInstance();
search.setOnGetRoutePlanResultListener(this);
}
public void SearchButton(View v){
route = null;
PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", editSt.getText().toString());
PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", editEn.getText().toString());
switch (v.getId()) {
case R.id.drive:
break;
case R.id.bus:
search.transitSearch((new TransitRoutePlanOption())
.from(stNode)
.city("北京")
.to(enNode));
break;
case R.id.walk:
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_route, menu);
return true;
}
@Override
public void onMapClick(LatLng arg0) {
map.hideInfoWindow();
}
@Override
public boolean onMapPoiClick(MapPoi arg0) {
return false;
}
@Override
public void onGetDrivingRouteResult(DrivingRouteResult result) {
}
@Override
public void onGetTransitRouteResult(TransitRouteResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(RouteActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
}
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
//起终点或途经点地址有岐义,通过以下接口获取建议查询信息
//result.getSuggestAddrInfo()
return;
}
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
nodeIndex = -1;
route = result.getRouteLines().get(0);
TransitRouteOverlay overlay = new TransitRouteOverlay(map);
map.setOnMarkerClickListener(overlay);
routeOverlay = overlay;
overlay.setData(result.getRouteLines().get(0));
overlay.addToMap();
overlay.zoomToSpan();
}
}
@Override
public void onGetWalkingRouteResult(WalkingRouteResult result) {
}
}
相关文章推荐
- Android 弹软键盘时listview的变化控制
- Android属性动画完全解析(二)
- android----Timer和TimerTask的使用
- android-----用代码安装apk文件
- Android 百度地图定位
- Android编码规范01
- 【Android】使用AIDL传递用户自定义类型数据--附完整示例代码
- [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决
- Android学习笔记之AndroidManifest.xml文件解析
- Android实现仿通讯录侧边栏滑动SiderBar效果代码
- android中drawable的各种state
- android studio制作9-patch图片
- webrtc_ns模块android手机音频处理
- Android编程ViewPager回弹效果实例分析
- android 数据保存之存到本地
- 【Android】AIDL原理以及基本类型数据传递
- android volley解析与二次封装
- Android SlidingMenu 使用详解
- Android - DrawerLayout
- Android Studio引用GitHub上的库 viewPagerIndicater