我想做的是:
我收到一个路线/路径列表(用户必须使用我的应用关注)。 我在地图上绘制路径时遇到问题。方向/路径包含街道名称,街道坐标和街道段。
我无法弄清楚如何在地图上绘制路径/路线并使路线更新 - 例如当用户移动(途中)时,移动一个图标以指示用户的进度或为此绘制的线路线越来越短,这真的无关紧要。所以你能指点我可以参考的教程吗?
到目前为止,我已经看过很多,但是大多数人都会从Google地图中获取路线,或者绘制的线条只是从起点到终点的直线,并且根本不适合街道。
答案 0 :(得分:1)
尝试遵循本教程。您应该在用户位置和标记之间绘制。在用户端调用函数onLocationChange以获取实际位置并重绘该行。 http://wptrafficanalyzer.in/blog/driving-route-from-my-location-to-destination-in-google-maps-android-api-v2/
答案 1 :(得分:1)
要实现此目的,请执行以下步骤
获取ArrayList markerPoints列表;
为其创建标记
单一路径,
LatLng origin = markerPoints.get(0);
LatLng dest = markerPoints.get(1);
// Getting URL to the Google Directions API
String url = getDirectionsUrl(origin, dest);
DownloadTask downloadTask = new DownloadTask();
// Start downloading json data from Google Directions API
downloadTask.execute(url);
用于多个目标路径,例如A-B-D-C等
private List<String> getDirectionsUrl(ArrayList<LatLng> markerPoints) {
List<String> mUrls = new ArrayList<>();
if (markerPoints.size() > 1) {
String str_origin = markerPoints.get(0).latitude + "," + markerPoints.get(0).longitude;
String str_dest = markerPoints.get(1).latitude + "," + markerPoints.get(1).longitude;
String sensor = "sensor=false";
String parameters = "origin=" + str_origin + "&destination=" + str_dest + "&" + sensor;
String output = "json";
String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters;
mUrls.add(url);
for (int i = 2; i < markerPoints.size(); i++)//loop starts from 2 because 0 and 1 are already printed
{
str_origin = str_dest;
str_dest = markerPoints.get(i).latitude + "," + markerPoints.get(i).longitude;
parameters = "origin=" + str_origin + "&destination=" + str_dest + "&" + sensor;
url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters;
mUrls.add(url);
}
}
return mUrls;
}
从
调用上述方法 List<String> urls = getDirectionsUrl(markerPoints);
if (urls.size() > 1) {
for (int i = 0; i < urls.size(); i++) {
String url = urls.get(i);
DownloadTask downloadTask = new DownloadTask();
// Start downloading json data from Google Directions API
downloadTask.execute(url);
}
}
}
以上代码将要求创建多个路径,如A-B,B-D,D-C等
答案 2 :(得分:0)
请按照以下步骤操作:Android Google Map V3 PolyLine cannot be drawn 这会有所帮助。 您只需要在点击Google Directions API
后解析收到的数据