【发布时间】:2018-07-01 08:26:45
【问题描述】:
我正在开发一个 Android 项目,我想在谷歌地图上的 2 点之间绘制路线。我已经成功地在源点和目标点之间绘制了路线。但是我有一个问题,即有时我想在超过 2 个点之间绘制一条路径,那时我编写的代码是在第一个位置和最后一个位置之间绘制路线并离开中点位置。我真正想要的是我的路线应该通过中点到达目的地。我怎样才能做到这一点?
【问题讨论】:
标签: android google-maps
我正在开发一个 Android 项目,我想在谷歌地图上的 2 点之间绘制路线。我已经成功地在源点和目标点之间绘制了路线。但是我有一个问题,即有时我想在超过 2 个点之间绘制一条路径,那时我编写的代码是在第一个位置和最后一个位置之间绘制路线并离开中点位置。我真正想要的是我的路线应该通过中点到达目的地。我怎样才能做到这一点?
【问题讨论】:
标签: android google-maps
您可以在三点之间分别绘制路线。因此,首先绘制从起点到中点的路线,然后从中点到终点。然后,如果您想添加所需的标记。
【讨论】:
您可以使用 GoogleMaps API Dcoumented Here 中的 PolylineOptions 并继续添加应该成为您路线一部分的所有点。你可以这样做
ArrayList<LatLng> points;
PolylineOptions lineOptions = null;
// Traversing through all the routes
for (int i = 0; i < result.size(); i++) {
points = new ArrayList<>();
lineOptions = new PolylineOptions();
// Fetching i-th route
List<HashMap<String, String>> path = result.get(i);
// Fetching all the points in i-th route
for (int j = 0; j < path.size(); j++) {
HashMap<String, String> point = path.get(j);
double lat = Double.parseDouble(point.get("lat"));
double lng = Double.parseDouble(point.get("lng"));
LatLng position = new LatLng(lat, lng);
points.add(position);
}
// Adding all the points in the route to LineOptions
lineOptions.addAll(points);
lineOptions.width(10);
lineOptions.color(Color.RED);
}
// Drawing polyline in the Google Map for the i-th route
if(lineOptions != null) {
mMap.addPolyline(lineOptions);
}
希望这能解决您的问题。
【讨论】: