我终于找到了如何在uri中为我的路线添加更多位置的信息:
示例:
Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("https://www.google.com/maps/dir/48.8276261,2.3350114/48.8476794,2.340595/48.8550395,2.300022/48.8417122,2.3028844"));
StartActivity(intent);
问题在于我只看到“预览”按钮,而没有看到“开始开始导航”。 我认为这是由于第一点不是当前位置。 有谁知道如何将第一个点设置为我当前所在的起点,从而有可能开始导航?
答案 0 :(得分:1)
您可以使用此:
String mapsUrl = "https://www.google.com/maps/dir/?api=1&origin=48.8276261,2.3350114&destination=48.8476794,2.340595&waypoints=48.8550395,2.300022|48.8417122,2.3028844&travelmode=driving&dir_action=navigate";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mapsUrl));
startActivity(intent);
哪里
origin
是您的起点
destination
是您的终点
waypoints
是您的停留
您应该使用waypoint
添加|
示例:waypoints=48.8550395,2.300022|48.8417122,2.3028844
您还可以添加travelmode
来指定出行方式
以下是您可以使用的旅行模式:driving
,bicycling
,transit
,walking
这将在行驶模式下打开Google地图
答案 1 :(得分:1)
也许 dir_action = navigate 参数设置将接近您想要的设置。
在Developer Guide的 形成路线URL 中,有关Google Maps官方文档中的部分讨论了如何使用Intent进行导航。其中有参数中的 dir_action =导航 和 航点 ,以设置导航模式和中间航点设置。如果您需要从用户的起点开始,则 origin 参数可以是(原始的,最相关的起始位置,例如用户位置,如果可用)。>
https://www.google.com/maps/dir/?api=1¶meters
来源:定义显示路线的起点。默认为最相关的起始位置,例如用户位置(如果有)。如果没有,则生成的地图可能会提供空白表格,以允许用户输入原点。
dir_action = navigate (可选):根据原点是否可用,启动路口导航或将路线导航到指定目的地。如果用户指定了一个原点,并且该原点不靠近用户的当前位置,或者该用户的当前位置不可用,则地图将启动路线预览。如果用户未指定原点(在这种情况下,原点默认为用户的当前位置),或者原点接近用户的当前位置,则地图将启动逐行导航。请注意,并非在所有Google Maps产品上和/或在所有目的地之间都可以使用导航;在这种情况下,此参数将被忽略。
路线点:指定一个或多个中间地点,以在起点和终点之间路由路线。可以使用竖线字符(|)来指定多个航点,以分隔各个地点(例如,柏林,德国|巴黎,法国)。允许打开的航点的数量因链接打开的平台而异,移动浏览器最多支持三个航点,否则最多支持九个航点。航点在地图上的显示顺序与URL中列出的顺序相同。每个航路点可以是地名,地址或逗号分隔的纬度/经度坐标。字符串应转义URL,因此将诸如“柏林,德国|巴黎,法国”之类的航点转换为Berlin%2CGermany%7CParis%2CFrance。
数据示例:
Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("https://www.google.com/maps/dir/?api=1&origin=48.8276261,2.3350114&destination=48.8417122,2.3028844&waypoints=48.8476794,2.340595|48.8550395,2.300022&travelmode=driving&dir_action=navigate"));
StartActivity(intent);
如果要从当前位置脱毒:
Uri是:"https://www.google.com/maps/dir/?api=1&origin=&destination=48.8417122,2.3028844&waypoints=48.8476794,2.340595|48.8550395,2.300022&travelmode=driving&dir_action=navigate"
这里有一个official method,可帮助您测试目的地是否在计划范围内并自动从当前位置开始:
Android.Net.Uri gmmIntentUri = Android.Net.Uri.Parse("google.navigation:q=48.8417122,2.3028844");
Intent mapIntent = new Intent(Intent.ActionView, gmmIntentUri);
mapIntent.SetPackage("com.google.android.apps.maps");
StartActivity(mapIntent);
您可以将q=48.8417122,2.3028844
修改为想要的测试目标数据。
如果要修改模拟器的位置,请查看以下屏幕截图: