首届Google暑期大学生博客分享大赛——2010 Andriod篇
今天折腾了大半天,总算让Android上面的地图显示出来了,小记一下过程。
前两天配置好了Android开发环境,并且写了Hello
World,但是对Android开发还是一知半解,就像尝试一下地图的开发,因为我后面要做的工作是与地图息息相关的。
我在安装Android SDK Platform的时候顺便安装了开发示例。在Google
API平台下有一个示例叫做MapsDemo,我本以为运行它就可以直接显示地图了,结果到模拟器上面执行,只显示网格,没有半点地图的迹象。
上网搜索了一下,发现Android上面的Google Map也需要API Key。它根据应用程序的keystore的MD5签名来生成API
key,使用keytool工具可以获得keystore的获得MD5签名。Android
SDK默认生成一个debug.keystore文件,放在用户主目录下的.android文件夹中,运行keytool工具(JDK中bin目录下有
keytool工具)命令如下:
C:\Program Files\Java\jdk1.6.0_18\bin>keytool.exe -list -alias androiddebugkey -keystore C:\Users\westyi\.android\debug.keystore -storepass android -keypass android
即可得到debug.keystore的MD5签名值,然后到http://code.google.com/android/add-ons/google-apis/maps-api-signup.html
页面提交上面得到的MD5签名即可获得地图API key。
得到自己的API key之后,就要对MapsDemo进行修改,将其中需要的Map
key修改为自己获得的Key。主要修改两个地方:
res/layout/mapview.xml中第30行
android:apikey="sample_api_key"
以及MapViewCompassDemo.java文件中第143行
mMapView = new MapView(this, "sample_api_key");
将sample_api_key改为自己获得的api key即可。
至此,我以为大功告成了,因为网上多数地图方面的问题都是关于API
Key的,我想这个Demo也应该就是这方面的问题吧。但事实确并非如此,运行后确实不再是网格了,这次是全白的!很诡异~~~
我百思不得其解,然后就在网上拼命找与Android地图开发相关的文章,发现多数的文章中都没有理会google这个示例,而是自己动手写
Activity。经过我对MapsDemo的代码分析,我发现代码中只是使用了MapView,而并未设置地图的缩放级别和地图中心。这可能就是显示全白界面的原因!需要对MapViewDemo.java文件进行修改,在onCreate方法最后添加代码:
MapView map = (MapView)findViewById(R.id.map);//获得MapView对象
map.getController().setCenter(new GeoPoint(39971036,116314659));//设置地图中心
map.getController().setZoom(10);//设置缩放级别
其中R.id.map是Android
SDK自动生成的,需要在res/layout/mapview.xml文件第25行加上android:id="@+id/map",为MapView
添加一个id编号,才能在代码中用findViewById获得MapView对象。
再次在模拟器中运行,亲爱的北京地图终于显示在了Android模拟器上面!
效果图如下:
PS:
MapViewDemo修改完之后发现,MapViewCompassDemo应该是没有什么问题的。只不过运行的时候需要在DDMS中模拟GPS位置,而且
MapViewCompassDemo.java中将地图的缩放级别设置为18,太高了,该成10左右效果更好。
- 大小: 139.5 KB
- 大小: 146.7 KB
分享到:
相关推荐
android 客户端使用google-Map实例
<com.google.android.maps.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey=...
安卓 android google map 谷歌地图
使用ArcGIS for Android开发的加载GoogleMap地图。并判断无网络时自动加载本地图片。图片存放在/ArcGIS/samples/tiledcache/下。在有网络时自动存储地图图片。未做容量控制及清空策略。并集成了从ArcGIS Server缓存...
Android Google map使用,Android Google map使用
Android google map API例子
google map for android
android google map 应用。可以显示地图,提供搜索功能,解析地址并定位。
Android结合google map应用开发,路径查询设定,路径导航。
android google map的开发入门 从搭建环境 申请API Key到几个关键类的使用
一步步教你用Android_Google_Map.pdf
android app 基于Google Map计算面积
实现通过GPS或NetWork获取当前位置的经纬度,并且在Google Map Android v2上显示
Android使用Google Map API创建的一个根据经纬度定位的程序. 交流QQ群:1279871
申请Android Google Map API key
android google map example
2013年更新的google map api v2致使原来的很多类都不能使用了,本人经过研究和翻看api文档整理并写了这个程序,实现了了位置获取,通过地名获取经纬度,输入目的地进行导航路线获取,异步数据处理等功能
android在google map上画导航路线图
Android上Google Map开发的例子程序
android写的google map api 应用