224.map6-路线搜索

来源:互联网 发布:淘宝网什么时候搞活动 编辑:程序博客网 时间:2024/05/19 13:16

驾车路线

package com.ldw.zbqq;import java.util.ArrayList;import java.util.List;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.overlayutil.DrivingRouteOverlay;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.route.DrivingRoutePlanOption;import com.baidu.mapapi.search.route.DrivingRouteResult;import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;import com.baidu.mapapi.search.route.PlanNode;import com.baidu.mapapi.search.route.RoutePlanSearch;import com.baidu.mapapi.search.route.TransitRouteResult;import com.baidu.mapapi.search.route.WalkingRouteResult;import android.os.Bundle;import android.widget.Toast;/* * 驾车路线搜索 */public class DrivingRouteOverlayDemo extends BaseActivity {private RoutePlanSearch routePlanSearch;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);search();}private void search() {// 单例 RoutePlanSearch,路线搜索routePlanSearch = RoutePlanSearch.newInstance();//监听routePlanSearch.setOnGetRoutePlanResultListener(new MyListener());DrivingRoutePlanOption drivingOption = new DrivingRoutePlanOption();PlanNode from = PlanNode.withLocation(hmPos);// 创建起点PlanNode to = PlanNode.withLocation(new LatLng(22.5522335,114.1061785));// 创建终点drivingOption.from(from);// 设置起点drivingOption.to(to);// 设置终点//设置经过路线List<PlanNode> nodes = new ArrayList<PlanNode>();nodes.add(PlanNode.withCityNameAndPlaceName("华侨城", "世博园"));drivingOption.passBy(nodes);drivingOption.policy(DrivingRoutePlanOption.DrivingPolicy.ECAR_DIS_FIRST);// 设置策略routePlanSearch.drivingSearch(drivingOption);}class MyListener implements OnGetRoutePlanResultListener{@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult result) {if (result == null|| SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error) {Toast.makeText(getApplicationContext(), "未搜索到结果", 0).show();return;}DrivingRouteOverlay overlay = new MyDrivingOverlay(baiduMap);baiduMap.setOnMarkerClickListener(overlay);// 把事件传递给overlayoverlay.setData(result.getRouteLines().get(0));// 设置线路为第一条overlay.addToMap();overlay.zoomToSpan();}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {}@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult result) {}}class MyDrivingOverlay extends DrivingRouteOverlay{public MyDrivingOverlay(BaiduMap arg0) {super(arg0);}@Overridepublic BitmapDescriptor getStartMarker() {//覆写此方法以改变默认起点图标return BitmapDescriptorFactory.fromResource(R.drawable.icon_st);}@Overridepublic BitmapDescriptor getTerminalMarker() {//覆写此方法以改变默认终点图标return BitmapDescriptorFactory.fromResource(R.drawable.icon_en);}}}

公交路线

package com.ldw.zbqq;import android.os.Bundle;import android.widget.Toast;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.overlayutil.DrivingRouteOverlay;import com.baidu.mapapi.overlayutil.TransitRouteOverlay;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.route.DrivingRouteResult;import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;import com.baidu.mapapi.search.route.PlanNode;import com.baidu.mapapi.search.route.RoutePlanSearch;import com.baidu.mapapi.search.route.TransitRoutePlanOption;import com.baidu.mapapi.search.route.TransitRouteResult;import com.baidu.mapapi.search.route.WalkingRouteResult;/* * 公交路线 */public class TransitRouteOverlayDemo extends BaseActivity {private RoutePlanSearch routePlanSearch;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);search();}private void search() {routePlanSearch = RoutePlanSearch.newInstance();routePlanSearch.setOnGetRoutePlanResultListener(new MyListener());TransitRoutePlanOption transitOption = new TransitRoutePlanOption();PlanNode from = PlanNode.withLocation(hmPos);// 创建起点PlanNode to = PlanNode.withLocation(new LatLng(22.5522335,114.1061785));// 创建终点transitOption.from(from);transitOption.to(to);transitOption.city("深圳");transitOption.policy(TransitRoutePlanOption.TransitPolicy.EBUS_WALK_FIRST);routePlanSearch.transitSearch(transitOption);}class MyListener implements OnGetRoutePlanResultListener{@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult result) {}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {if (result == null|| SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error) {Toast.makeText(getApplicationContext(), "未搜索到结果", 0).show();return;}TransitRouteOverlay overlay = new TransitRouteOverlay(baiduMap);baiduMap.setOnMarkerClickListener(overlay);// 把事件传递给overlayoverlay.setData(result.getRouteLines().get(0));// 设置线路为第一条overlay.addToMap();overlay.zoomToSpan();}@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult result) {}}class MyDrivingOverlay extends DrivingRouteOverlay{public MyDrivingOverlay(BaiduMap arg0) {super(arg0);}@Overridepublic BitmapDescriptor getStartMarker() {//覆写此方法以改变默认起点图标return BitmapDescriptorFactory.fromResource(R.drawable.icon_st);}@Overridepublic BitmapDescriptor getTerminalMarker() {//覆写此方法以改变默认终点图标return BitmapDescriptorFactory.fromResource(R.drawable.icon_en);}}}

步行路线搜索

package com.ldw.zbqq;import android.os.Bundle;import android.widget.Toast;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.overlayutil.WalkingRouteOverlay;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.route.DrivingRouteResult;import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;import com.baidu.mapapi.search.route.PlanNode;import com.baidu.mapapi.search.route.RoutePlanSearch;import com.baidu.mapapi.search.route.TransitRouteResult;import com.baidu.mapapi.search.route.WalkingRoutePlanOption;import com.baidu.mapapi.search.route.WalkingRouteResult;/* * 步行路线 */public class WalkingRouteOverlayDemo extends BaseActivity {private RoutePlanSearch routePlanSearch;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);search();}private void search() {routePlanSearch = RoutePlanSearch.newInstance();routePlanSearch.setOnGetRoutePlanResultListener(new MyListener());WalkingRoutePlanOption walkOption = new WalkingRoutePlanOption();PlanNode from = PlanNode.withLocation(hmPos);// 创建起点PlanNode to = PlanNode.withLocation(new LatLng(22.5522335,114.1061785));// 创建终点//走老路默认选择最优路径walkOption.from(from);walkOption.to(to);routePlanSearch.walkingSearch(walkOption);}class MyListener implements OnGetRoutePlanResultListener{@Overridepublic void onGetDrivingRouteResult(DrivingRouteResult result) {}@Overridepublic void onGetTransitRouteResult(TransitRouteResult result) {}@Overridepublic void onGetWalkingRouteResult(WalkingRouteResult result) {if (result == null|| SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error) {Toast.makeText(getApplicationContext(), "未搜索到结果", 0).show();return;}WalkingRouteOverlay overlay = new WalkingRouteOverlay(baiduMap);baiduMap.setOnMarkerClickListener(overlay);// 把事件传递给overlayoverlay.setData(result.getRouteLines().get(0));// 设置线路为第一条overlay.addToMap();overlay.zoomToSpan();}}}


原创粉丝点击