添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
添加Key
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="cb6b5956ba18c602e4b8b51c1fee943d" />
<--------------------------------------------------------------第一个类-------------------------------------------------------------->
package com.amap.map3d.demo.route;
import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import com.amap.api.maps.AMap;
import com.amap.api.maps.AMap.InfoWindowAdapter;
import com.amap.api.maps.AMap.OnInfoWindowClickListener;
import com.amap.api.maps.AMap.OnMapClickListener;
import com.amap.api.maps.AMap.OnMarkerClickListener;
import com.amap.api.maps.MapView;
import com.amap.api.maps.MapsInitializer;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.overlay.BusRouteOverlay;
import com.amap.api.maps.overlay.DrivingRouteOverlay;
import com.amap.api.maps.overlay.WalkRouteOverlay;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.core.PoiItem;
import com.amap.api.services.poisearch.PoiItemDetail;
import com.amap.api.services.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;
import com.amap.api.services.poisearch.PoiSearch.OnPoiSearchListener;
import com.amap.api.services.route.BusPath;
import com.amap.api.services.route.BusRouteResult;
import com.amap.api.services.route.DrivePath;
import com.amap.api.services.route.DriveRouteResult;
import com.amap.api.services.route.RouteSearch;
import com.amap.api.services.route.RouteSearch.BusRouteQuery;
import com.amap.api.services.route.RouteSearch.DriveRouteQuery;
import com.amap.api.services.route.RouteSearch.OnRouteSearchListener;
import com.amap.api.services.route.RouteSearch.WalkRouteQuery;
import com.amap.api.services.route.WalkPath;
import com.amap.api.services.route.WalkRouteResult;
import com.amap.map3d.demo.route.RouteSearchPoiDialog.OnListItemClick;
import com.amap.map3d.demo.util.AMapUtil;
import com.amap.map3d.demo.util.OffLineMapUtils;
import com.amap.map3d.demo.util.ToastUtil;
import com.example.map_demo02.R;
/**
* AMapV2地图中简单介绍route搜索
*/
public class RouteActivity extends Activity implements OnMarkerClickListener,
OnMapClickListener, OnInfoWindowClickListener, InfoWindowAdapter,
OnPoiSearchListener, OnRouteSearchListener, OnClickListener {
private AMap aMap;
private MapView mapView;
private Button drivingButton;
private Button busButton;
private Button walkButton;
private ImageButton startImageButton;
private ImageButton endImageButton;
private ImageButton routeSearchImagebtn;
private EditText startTextView;
private EditText endTextView;
private ProgressDialog progDialog = null;// 搜索时进度条
private int busMode = RouteSearch.BusDefault;// 公交默认模式
private int drivingMode = RouteSearch.DrivingDefault;// 驾车默认模式
private int walkMode = RouteSearch.WalkDefault;// 步行默认模式
private BusRouteResult busRouteResult;// 公交模式查询结果
private DriveRouteResult driveRouteResult;// 驾车模式查询结果
private WalkRouteResult walkRouteResult;// 步行模式查询结果
private int routeType = 1;// 1代表公交模式,2代表驾车模式,3代表步行模式
private String strStart;
private String strEnd;
private LatLonPoint startPoint = null;
private LatLonPoint endPoint = null;
private PoiSearch.Query startSearchQuery;
private PoiSearch.Query endSearchQuery;
private boolean isClickStart = false;
private boolean isClickTarget = false;
private Marker startMk, targetMk;
private RouteSearch routeSearch;
public ArrayAdapter<String> aAdapter;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.route_activity);
/*
* 设置离线地图存储目录,在下载离线地图或初始化地图设置;
* 使用过程中可自行设置, 若自行设置了离线地图存储的路径,
* 则需要在离线地图下载和使用地图页面都进行路径设置
* */
//Demo中为了其他界面可以使用下载的离线地图,使用默认位置存储,屏蔽了自定义设置
MapsInitializer.sdcardDir =OffLineMapUtils.getSdCacheDir(this);
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(bundle);// 此方法必须重写
init();
}
/**
* 初始化AMap对象
*/
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
registerListener();
}
routeSearch = new RouteSearch(this);
routeSearch.setRouteSearchListener(this);
startTextView = (EditText) findViewById(R.id.autotextview_roadsearch_start);
endTextView = (EditText) findViewById(R.id.autotextview_roadsearch_goals);
busButton = (Button) findViewById(R.id.imagebtn_roadsearch_tab_transit);
busButton.setOnClickListener(this);
drivingButton = (Button) findViewById(R.id.imagebtn_roadsearch_tab_driving);
drivingButton.setOnClickListener(this);
walkButton = (Button) findViewById(R.id.imagebtn_roadsearch_tab_walk);
walkButton.setOnClickListener(this);
startImageButton = (ImageButton) findViewById(R.id.imagebtn_roadsearch_startoption);
startImageButton.setOnClickListener(this);
endImageButton = (ImageButton) findViewById(R.id.imagebtn_roadsearch_endoption);
endImageButton.setOnClickListener(this);
routeSearchImagebtn = (ImageButton) findViewById(R.id.imagebtn_roadsearch_search);
routeSearchImagebtn.setOnClickListener(this);
}
/**
* 方法必须重写
*/
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
/**
* 方法必须重写
*/
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
/**
* 方法必须重写
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
/**
* 选择公交模式
*/
private void busRoute() {