AndroidMapAPI使用文档文档编号:名称:编写:编写日期:2010-11-30审核:修改人:审核日期:修改日期:2目录1准备工作................................................................................................................................31.1申请AndroidMapAPIkey.........................................................................................31.2创建基于GoogleAPIsAVD.......................................................................................51.3创建基于GoogleAPIs工程....................................................................................61.4连接手机及驱动的安装............................................................................................72GoogleMapAPI的使用.........................................................................................................82.1编写最简单的android谷歌地图应用......................................................................92.2在androidmapoverlay中使用图片.......................................................................113定位功能.............................................................................................................................183.1定位API中主要的类...............................................................................................183.2如何进行定位...........................................................................................................183.3添加权限...................................................................................................................204搜索的使用..........................................................................................................................2131准备工作要想编写GoogleMap的应用首先需要GoogleAPIs。需要在项目中导入Googlemapapi。默认情况是android某个版本比如android2.1,现在需要改为对应版本的Googleapis,版本要和android版本一致。在默认的情况下GoogleAPI是没有的。这个googleapis是同版本的android超集,包含了google的私有应用api。比如:这样就可以在项目中使用比如:importcom.google.android.maps.MapActivity;1.1申请AndroidMapAPIkeygoogle需要一个签名指纹的机制,要先到google注册,并把这个指纹包含在应用中,才可以下载到地图信息。也就是说每次下载地图信息要带着这个指纹信息。指纹信息的注册和获取都是免费的。首先,必须要有Google的账号,如果没有可以申请一个,下面是如何申请AndroidMapAPIkey。步骤1:找到debug.keystore文件。4使用Eclipse开发时,选择Windows-Preference如图:步骤2:取得debug.keystore的MD5值在cmd中执行:(可以先定位到jdk的bin目录下)keytool-list-aliasandroiddebugkey-keystoreC:\Users\hey_Jude\.android\debug.keystore-storepassandroid-keypassandroid01:E4:D2:09:E4:9F:96:3F:B5:79:80:22:C2:37:C7:9Fcom.google.android.maps.MapViewandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:apiKey=0S4StgK_VfPCC6nrszX2fMlDeJbymTsTleEAxyQ5/双引号中的为你keystore位置,(一定要有双引号),否则就会报错。如果系统提示找不到keytool,需要将jdk中bin目录加入到环境变量中。于是就得到了指纹认证。步骤3:申请AndroidMap的APIkey打开网页::1B:7C:E0:41:31:52:2F:FD:26:6C:EC:46:E3:30:850S4StgK_VfPCC6nrszX2fMlDeJbymTsTleEAxyQ认证指纹粘贴到如下图的文本域中点击按钮于是就申请到了我们想要的AndroidMap的APIkey。1.2创建基于GoogleAPIsAVD打开AVD管理界面,进行创建,如图:61.3创建基于GoogleAPIs工程创建基于Googleapis的工程如图:71.4连接手机及驱动的安装连接手机进行测试时,需要安装驱动,大多数手机的驱动在如图中的目录中都能够找的到,在usb_driver目录中,但有些手机在此目录中提示无法找到驱动,此时就需要修改一下android_winusb.inf的配置文件:图一的上面为修改过的,下面的是没有修改的,如图1只是修改了%SingleAdbInterface%=USB_Install,USB\VID_413C&PID_B005这里的部分,在安装驱动是可以看到.也可以在设备管理器中找到如图2(1)(2)8(3)2GoogleMapAPI的使用下面的连接是GoogleMapAPI的地址:这里面有一些重要的类:LocationManager:本类提供访问定位服务的功能,也提供获取最佳定位提供者的功能。另外,临近警报功能(前面所说的那种功能)也可以借助该类来实现。LocationProvider:该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。LocationListener:提供定位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。Criteria:该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。Android也提供了一组访问GoogleMAP的API,借助GoogleMAP及定位API,我们就能在地图上显示用户当前的地理位置:GoogleMapAPIAndroid中定义了一个名为com.google.android.maps的包,其中包含了一系列用于在GoogleMap上显示,控制和层叠信息的功能类,以下是该包中最重要的几个类:9MapActivity:这个类是用于显示GoogleMAP的Activity类,它需要连接底层网络。MapView:MapView是用于显示地图的View组件。它必须和MapActivity配合使用。MapController:MapController用于控制地图的移动。Overlay:这是一个可显示于地图之上的可绘制的对象。GeoPoint:这个一个包含经纬度位置的对象。2.1编写最简单的android谷歌地图应用这是在布局文件中的代码:android:apiKey这个标签指的是在上面申请的APIkey?xmlversion=1.0encoding=utf-8?RelativeLayoutxmlns:android=:layout_width=fill_parentandroid:layout_height=fill_parentcom.google.android.maps.MapViewandroid:id=@+id/mapViewandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:enabled=trueandroid:clickable=trueandroid:apiKey=0IT5qSDJrPr1rKduDTGRv3ox_1i40mIGVb7PjJw//RelativeLayout代码其实很简单:publicclassLocationActivityextendsMapActivity{privateMapViewmapView;privateMapControllermapController;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);10mapView=(MapView)findViewById(R.id.map_view);Log.i(welcome,createdmapactivity.);}@OverrideprotectedbooleanisRouteDisplayed(){returnfalse;}}在模拟器上的正常显示,在家的时候。但公司就不出来了,可能是和代理这里有一定的关系。连接好手机后就可以进行发布。发布的过程的也遇到了小小的麻烦,要注意手机的系统也需要包含GoogleAPIs。第一次使用的是dell的手机,操作系统是oms的是移动的定制机,就遇到了这样的问题。然后换了一个摩托的里程碑,是发布上去了,但地图始终不显示,没有找到原因。最后用了个G1简单的地图总算出来了。有了这个简单的应用就可以对它进行更多的操作了。112.2在androidmapoverlay中使用图片2.2.1继承Overlay在android编写最简单的地标提示Overlay中使用的是文字提示,还可以设置图片,比如这样:代码如下:packagecom.lingtu.gmap.activity;importjava.util.List;importandroid.graphics.Bitmap;importandroid.