build.gradle
文件中添加如下代码: implementation 'com.google.maps:google-maps-services:0.5.0'
AndroidManifest.xml
文件中添加地图 API 密钥:
MainActivity.java
文件中添加如下代码:import com.google.maps.DirectionsApi;
import com.google.maps.DirectionsApiRequest;
import com.google.maps.GeoApiContext;
import com.google.maps.model.DirectionsResult;
import com.google.maps.model.TravelMode;
public class MainActivity extends AppCompatActivity {
private GeoApiContext mGeoApiContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化 GeoApiContext,需要传入地图 API 密钥
mGeoApiContext = new GeoApiContext.Builder()
.apiKey("YOUR_API_KEY")
.build();
// 调用查询路线的方法
getDirections();
}
private void getDirections() {
DirectionsApiRequest request = DirectionsApi.getDirections(mGeoApiContext,
"originAddress",
"destinationAddress")
.mode(TravelMode.DRIVING);
try {
DirectionsResult result = request.await();
// 获取路线信息
// Code your logic for obtaining and displaying the route here
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意替换 YOUR_API_KEY
、originAddress
和 destinationAddress
。
4. 解析查询结果并在地图上显示路线。
这里展示一个简单的方法:使用 Polyline 在地图上显示路线
PolylineOptions line = new PolylineOptions();
List latLngList = new ArrayList();
List decodedPath = result.routes[0].overviewPolyline.decodePath();
for (com.google.maps.model.LatLng latLng : decodedPath) {
latLngList.add(new LatLng(latLng.lat, latLng.lng));
}
line.addAll(latLngList);
line.width(12f);
line.color(Color.RED);
// 在地图上画出路线
map.addPolyline(line);
注:这里的 map
是指 GoogleMap 对象,需要先获得该对象(示例略)。