【问题标题】:Using "com.google.android.gms.maps.GoogleMap", can I draw a route as I can on maps.google.com?使用“com.google.android.gms.maps.GoogleMap”,我可以在 maps.google.com 上绘制路线吗?
【发布时间】:2013-01-18 23:36:32
【问题描述】:
我希望可以使用 Android 版 Google 地图在两点之间获取路线/绘制路线(请注意:Google 地图,而不是 Google 导航)。
我刚刚让“com.google.android.gms.maps.GoogleMap”(使用 MapFragment)工作,但我没有看到任何用于在两点之间绘制/获取路线的方法。所以我怀疑这是做不到的。
有人可以验证或否认这一点吗? =)
PS:我知道“谷歌导航”。它可以使用 Intent 在那里获取路线,但问题是我无法让它在我的应用程序中“内联”,这在某种程度上并不理想。所以我转而看地图。
【问题讨论】:
标签:
android
google-maps
google-maps-android-api-2
【解决方案1】:
但我没有看到任何用于在两点之间绘制/获取路线的方法。所以我怀疑这是做不到的。
使用a Polyline 绘制路线。
“获取路线”不是 Maps V1 的一部分,也不是 Maps V2 的一部分。您必须找到一些可以为您提供路线信息的 Web 服务。
此外,我强烈建议您让合格的法律顾问查看使用 Maps V2 的条款和条件,以确认您尝试做的事情在该协议的范围内,该协议包含与提供导航帮助相关的特定条款.
【解决方案2】:
Google Developers 使用 API V2 讨论了获取路由。API V1 确实不是正确的答案。这是 API V2 代码
public void setupLine(LatLng startLocation){
//set up path
PolylineOptions line=new PolylineOptions().add(startLocation).add(startLocation).color(mLineColour);
mPath=mMap.addPolyline(line);
mPath.setGeodesic(true);
//Add 2 points
pathPoints=new ArrayList<LatLng>(2);
pathPoints.add(startLocation);//origin
pathPoints.add(startLocation);//destination - updated later
}
private void updateLine(LatLng position){
//replace location
pathPoints.set(1, position);
//assign new points to path
mPath.setPoints(pathPoints);
}