kar*_*nji 2 android google-maps google-maps-urls
我正在处理我发送waypoints
到Gmaps
应用程序的功能,Intent
以便使用可以通过waypoints
我发送的自定义导航到目标
当我在嵌入式中绘制这条路线时Google Maps
,我可以看到Circuit route
,但是当我在Gmaps
应用程序中看到相同的路线时,它就Circuit
被打破了.
我的代码:
String srcAdd = "saddr="+latLngArrayList.get(0).latitude+","+latLngArrayList.get(0).longitude;
String desAdd = "&daddr="+latLngArrayList.get(latLngArrayList.size() - 1).latitude+","+latLngArrayList.get(latLngArrayList.size() - 1).longitude;
String wayPoints = "";
for (int j = 1; j < latLngArrayList.size() - 1; ++j) {
wayPoints =wayPoints+"+to:"+latLngArrayList.get(j).latitude+","+latLngArrayList.get(j).longitude;
}
String link="https://maps.google.com/maps?"+srcAdd+desAdd+wayPoints;
final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(link));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我建议您查看2017年5月推出的Google Maps URL API.此API提供了一个通用的跨平台链接,您可以在应用程序中使用这些链接来启动Google Maps的意图.支持的模式之一是方向模式.你可以在这里读到它:
https://developers.google.com/maps/documentation/urls/guide#directions-action
当您使用Directions API并发布航点的示例坐标时,我能够在网络服务和Google地图网址中测试结果.
网络服务结果在路线计算器工具中测试:
我们通过Directions API获得的路线如下
这些航点的Google Maps URL链接如下
您在此屏幕截图中显示了使用Google地图网址获得的路线
如您所见,两条路线都相同,因此Directions API和Google地图网址按预期工作.我相信您应该更改代码以使用Google地图网址:
String srcAdd = "&origin=" + latLngArrayList.get(0).latitude + "," + latLngArrayList.get(0).longitude;
String desAdd = "&destination=" + latLngArrayList.get(latLngArrayList.size() - 1).latitude + "," + latLngArrayList.get(latLngArrayList.size() - 1).longitude;
String wayPoints = "";
for (int j = 1; j < latLngArrayList.size() - 1; j++) {
wayPoints = wayPoints + (wayPoints.equals("") ? "" : "%7C") + latLngArrayList.get(j).latitude + "," + latLngArrayList.get(j).longitude;
}
wayPoints = "&waypoints=" + wayPoints;
String link="https://www.google.com/maps/dir/?api=1&travelmode=driving"+srcAdd+desAdd+wayPoints;
final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(link));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用dir_action=navigate
参数直接打开精细导航.
我希望这有帮助!
归档时间: |
|
查看次数: |
5204 次 |
最近记录: |