gpt4 book ai didi

android - 通过将路径点传递到 GoogleMaps android 来创建电路路线

转载 作者:行者123 更新时间:2023-12-02 14:32:11 25 4
gpt4 key购买 nike

我正在开发发送 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);

电路路线 enter image description here

无环路 enter image description here

最佳答案

我建议看看 Google Maps URLs于 2017 年 5 月推出的 API。此 API 提供通用跨平台链接,您可以在应用程序中使用这些链接来启动 Google map 的 Intent 。支持的模式之一是方向模式。您可以阅读here .

当您使用 Directions API 并发布航路点的示例坐标时,我能够在网络服务和 Google map 网址中测试结果。

网络服务结果在路线计算器工具中进行测试:

https://directionsdebug.firebaseapp.com/?origin=19.07598304748535%2C72.87765502929688&destination=19.07598304748535%2C72.87765502929688&waypoints=18.7284%2C73.4815%7C18.6876%2C73.4827%7C18.5839587%2C73.5125092%7C18.5369444%2C73.4861111%7C18.480567%2C73.491658

我们通过 Directions API 获取的路线如下:

enter image description here

这些路径点的 Google map URL 链接如下:

https://www.google.com/maps/dir/?api=1&origin=19.07598304748535,72.87765502929688&destination=19.07598304748535,72.87765502929688&waypoints=18.7284,73.4815%7C18.6876,73.4827%7C18.5839587,73.5125092%7C18.5369444,73.4861111%7C18.480567,73.491658&travelmode=driving

此屏幕截图显示了您使用 Google map 网址获取的路线。

enter image description here

正如您所看到的,两条路线是相同的,因此 Directions API 和 Google map URL 按预期工作。我认为您应该更改您的代码以使用 Google map 网址:

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);

此外,您还可以使用dir_action=navigate参数直接打开逐向导航。

关于android - 通过将路径点传递到 GoogleMaps android 来创建电路路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46864455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com