免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2133 | 回复: 0
打印 上一主题 下一主题

Android中在地图上显示两点间路径的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-29 10:08 |只看该作者 |倒序浏览

在Android 0.9
以及之前的SDK中,一直有一个com.google.googlenav的package,可以用来实现很多和Google地图相关的复杂功能,比如我
今天要讲的显式两点间路径等。但是从1.0的SDK开始这个package被移除了,这使得很多早期的Android程序无法编译和运行,相关的功能也就
没法实现了——Google一早就承诺会把Android开源,在开源的前夕移除一些比较高级的API也是可以理解的,何况他提供了很棒的Intent机
制让我们调用内置的Google Maps。
我在
Compare Everywhere
的作者
Jeffrey Sharkey的blog
上看到了相关的一篇文章,学到了一个方法。
首先我们需要知道一点,即在PC浏览器中输入类似
http://maps.google.com/maps?f=d&saddr=shanghai&daddr=hangzhou&hl=en
这样的URL就可以在浏览器中得到一个从上海到杭州的路径,其中,saddr表示起点位置,daddr则表示目的地位置,当然也可以使用如X,Y的经纬度来表示。
知道了这一点以后,我们就可以利用Intent新建一个Activity来帮助我们。Android会自动找到并启动合适的应用程序,如果有多个可以打开这个URL的应用程序,它就会让用户选择。我写了一个很简单的Sample,主要的几句代码如下:
1.String uri = "
http://maps.google.com/maps?f=d&
;saddr=" + strFrom2.                    + ",&daddr=" + strTo + "&hl=en";3.Log.i("RouteSample", "uri=" + uri);4. 5.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uri)));
在用户输入完起点和目的地,并确认以后,Android弹出对话框让用户选择合适的应用程序。

我们选择Maps以后,上海到杭州的路径就显式在地图上了。

在这个例子中,我们利用了Android的Intent来启动了一个新的Activity,并显式了我们所需要的两点间的路径。由于我们是利用了
Google
Maps的功能,所以功能上没有多少东西可以定制。当然我觉得这个例子最主要的一点是展示了Android的Intent的灵活用法(官方的
Intents List中被没有提及这个用法)。完整的源代码
点击这里下载



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49742/showart_1913855.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP