`
westyi
  • 浏览: 76136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android上使用Google Map

阅读更多

首届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
分享到:
评论
6 楼 angelacandy 2012-07-16  
我的地图上面的地名啊什么的为什么总是英文的了
5 楼 Lori_Liu 2012-04-06  
你好,我向请教一下,使用Google Map 开发,不论是在模拟器还是在真机上显示的只是一些灰色的网格,重新换掉API Key之后还是不合适,有什么好的解决办法没有...谢谢
4 楼 a6377508 2011-12-14  
谢谢   解决了 困扰我一天的问题
3 楼 dengzhangtao 2010-12-30  
有源码看吗?  不是很清楚
2 楼 westyi 2010-09-29  
倒打一耙 写道
你好,我想问一下,使用Google Map之后,我弄出来的程序显示为什么是一些网格状图像呢?而不是地图……

你好,我之前也遇到这个问题。这篇文章正好解决了这个问题。你得看看你的地图的API key,而且MapView那个DEMO需要重新改写一下,设置下地图中心和缩放级别才行。
1 楼 倒打一耙 2010-09-25  
你好,我想问一下,使用Google Map之后,我弄出来的程序显示为什么是一些网格状图像呢?而不是地图……

相关推荐

    google-Map.zip_android_android google map_android map_google map

    public void onMapReady(GoogleMap googleMap) { // 这里可以进一步配置地图,比如设置缩放级别、启用定位等 } }); ``` 不忘在其他生命周期方法(如onResume(), onPause(), onDestroy())中调用对应的方法。 ...

    android google map 应用

    在Android布局文件中添加MapView组件,通过设置API密钥和初始化GoogleMap对象,可以实现在应用中展示地图。同时,可以通过调整Zoom级别来控制地图的缩放程度,使用CameraPosition和CameraUpdateFactory来改变视图...

    ArcGIS Android API加载GoogleMap及自动离线

    使用ArcGIS for Android开发的加载GoogleMap地图。并判断无网络时自动加载本地图片。图片存放在/ArcGIS/samples/tiledcache/下。在有网络时自动存储地图图片。未做容量控制及清空策略。并集成了从ArcGIS Server缓存...

    android google map 导航

    一旦得到路线信息,可以在地图上绘制路径,使用`PolylineOptions`和`GoogleMap.addPolyline()`方法。 总的来说,实现Android上的Google Map导航功能涉及以下几个关键步骤: 1. 添加Google Play Services依赖 2. ...

    Android 上应用Googlemap

    <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

    安卓 android google map 谷歌地图

    Android_Google_Map.rar_Google api_android_android google map_and

    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); LatLng sydney = new LatLng(-34, 151); MarkerOptions markerOptions = new MarkerOptions().position(sydney).title("悉尼"); googleMap.addMarker...

    Android Google map使用

    Android Google map使用,Android Google map使用

    android GoogleMap定位(四)

    同时,GoogleMap API还提供了路线规划和导航功能,可以使用Directions API获取路径数据,并在地图上绘制路线。 总之,Android中的GoogleMap定位涉及多个步骤,包括引入依赖、配置权限、初始化地图、开启定位服务、...

    Android google map API例子

    Android google map API例子

    Android结合googlemap应用开发

    一旦解码完成,你可以将这些点按照顺序在Google Map上绘制出来,形成路线图。在Android中,这通常通过MapView或MapView的子类实现,使用Polyline对象来画线,每个点都是一个LatLng对象,包含了经度和纬度信息。 总...

    android在google map上画导航路线图

    在Android平台上,集成...通过以上步骤,你就能在Android应用中实现在Google Map上绘制导航路线图的功能了。不过要注意,实际开发中可能还需要考虑错误处理、用户交互优化、离线地图支持等因素,以提供更好的用户体验。

    android web版googlemap

    标题“android web版googlemap”表明我们将讨论如何在Android应用程序中嵌入和使用Google Maps Web服务,特别是在V3版本上。描述中提到的“实现了定位显示,轨迹播放等功能”,意味着我们将深入探讨如何实现实时位置...

    google map for android

    6. **显示用户当前位置**:为了在地图上显示用户的位置,你需要使用定位服务(Location Services)。这可以通过Google Play服务中的`FusedLocationProviderClient`实现,它可以提供更精确的定位数据。 7. **错误...

    轨迹记录 android google map 应用

    "android"标签表明了这是关于Android平台的开发内容,而"googleMap"则指明了主要涉及Google Maps服务。在Android应用中集成Google Maps,开发者需要在Google Cloud Console创建项目,获取API密钥,然后在...

    android google map example

    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); // 开启定位功能 if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { ...

    Android-Google-Map-APi.doc.zip_android_google map android

    **Android谷歌地图API** 在Android应用开发中,Google Maps API是一个至关重要的组件,它允许开发者在应用程序中集成谷歌地图的功能,提供丰富的地理位置服务。本文档将深入探讨Android Map API v1,这一版本虽然已...

    android app 基于Google Map计算面积

    public void onMapReady(GoogleMap googleMap) { GoogleMap map = googleMap; // 设置地图选项 map.setMapType(GoogleMap.MAP_TYPE_NORMAL); // 设置初始位置和缩放级别 CameraPosition cameraPosition = new ...

    android写的google map api 应用

    googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); googleMap.getUiSettings().setZoomControlsEnabled(true); // 添加标记、路径等地图元素 MarkerOptions marker = new MarkerOptions().position(new LatLng...

Global site tag (gtag.js) - Google Analytics