2013-07-05 274 views
0

我在我的Android应用程序中实现Google导航时面临一个非常奇怪的问题。谷歌地图导航 - 在Android应用程序中使用谷歌导航

我通过打开URL实现谷歌导航 -

https://maps.google.co.in/maps?saddr=xxxxxxxxxxxxxxxxxx&daddr=xxxxxxxxxxxxx

其中xxxx是指源地址和目的地址。

使用隐含的意图。通过在桌面上打开网址,我可以成功导航到该地点。

但是,当我尝试在设备上运行该应用程序时,该url重定向到谷歌搜索页面。当我按回按钮时,我从当前位置(按照谷歌地图)获取导航路线,到使用反向地理编码获得的当前位置。简而言之,上面提到的网址并不能达到目的。

请帮我解决问题。如果谷歌导航实施是错误的,请帮助我。

在此先感谢

回答

8
Intent intent = new Intent(Intent.ACTION_VIEW, 
      Uri.parse("http://ditu.google.cn/maps?f=d&source=s_d" + 
      "&saddr=31.249351,121.45905&daddr=31.186371,121.489885&hl=zh&t=m&dirflg=d")); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK&Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
    startActivity(intent); 

您可以使用代码来启动谷歌地图应用来浏览! ps:dirflg = d;您可以更改参数“d”表示驾驶汽车,“w”表示通过巴士或其他方式行走“r”。

3

从Android访问地图理想的做法将是从活动中与源和目的地的位置,而不是试图在桌面调用地图网址等所需的细节火的意图。这样做的目的大致会IKE:

Intent navigation = new Intent(Intent.ACTION_VIEW, Uri 
     .parse("http://maps.google.com/maps?saddr=" 
       + Constants.latitude + "," 
       + Constants.longitude + "&daddr=" 
       + latitude + "," + longitude)); 
startActivity(navigation); 

earlier post对这种做法进行更多的讨论。请检查它是否适合您的要求

+0

谢谢托尼,我能够通过解雇问题来解决问题。加载webview没有帮助。 –

0
  Intent navigation = new Intent(Intent.ACTION_VIEW, Uri 
        .parse("http://maps.google.com/maps?saddr=" 
          + latitude + "," 
          + longitude + 
          "&daddr=" 
          + lat + "," + long1)); 
      navigation.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK&Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 
      navigation.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
      startActivity(navigation); 
+1

尽管此代码片段可能是解决方案,但[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-基于代码的答案)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 –

+0

尽管此链接可能回答此问题,但最好在此处包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/17596319) –