第8章 基于Google API开发个人移动地图

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章基于GoogleAPI开发个人移动地图8.1案例背景Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。无缝结合的Google应用是Android平台五大优势特色之一(五大特色分别是:一、开放性、二、挣脱运营商的束缚、三、丰富的硬件选择、四、不受任何限制的开发商、五、无缝结合的Google应用)。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。本章将主要介绍GoogleAPI个人移动地图的实现。本实例大概的实现思路是:应用程序运行后,主界面上可以创建一个新的跟踪,界面增加GPS功能数据,获取用户当前所在的位置信息;用户可以在自己的手机上面获取到卫星地图、交通地图、街景地图;用户可以用按钮实现地图的上下左右的移动。8.2案例设计与实现8.2.1AndroidGoogle地图设计与实现AndroidGoogle地图从功能上讲主要是从Google网站上获得一个地图信息,以各种不同的形式显示在手机显示屏上面。单击其中任意地区,可以扩大与缩放,可以看到相对比较完成的地图,同时开发GPS功能,获取用户的当前位置。程序运行时的页面如图8-1、图8-2所示:图8-1Google地图运行效果1图8-2Google地图运行效果28.3案例详解8.3.1安装GoogleMapAPI在默认情况下,在安装GoogleAndroidSDK时,是不需要必须安装GoogleMapAPI的。但要做Map应用的话,就必须安装GoogleMapAPI。我们可以通过启动AndroidSDKandAVDManager这个SDK管理器去下载安装GoogleMapAPI。在启动SDK管理器后,选择“InstalledOptions”,去查看你已经安装了哪些SDK和是否已经安装GoogleMapAPI,如果尚未安装的话,可以在“AvailablePackages”中查找并下载安装,如图8-3所示::图8-3GoogleMapAPI安装使用Google地图功能必须安装GoogleMapAPI。8.3.2建立Eclipse工程当下载完GoogleAPI后,就可以开始新建Eclipse工程了,我们把这个工程命名为com.google.MapTest,如下图,注意必须在BuildTarget中勾选GoogleAPI,而Applicationname和Packagename的填写如图8-4所示。图8-4新建GoogleMapAPI项目8.3.3获得GoogleMapAPIKey在正式使用GoogleMapAPI前,必须先生成GoogleMapAPIKEY。具体的详细步骤请参考一文:()。首先,我们要使用Java下的keytool工具,产生MD5密纹,这个是跟你的证书所关联的,在使用GoogleMapAPI时进行对证书校验。Keytool这个文件一般位于%JAVA_HOME%/bin目录下,如果是Linux系统,则位于$JAVA_HOME/bin下的,比如windows下在C:\programs\Java\jdk1.6.0_18\bin下。在开发Android程序时,一般是在debug调试模式下开发的,这时SDK的buildtools会自动使用debug模式下的证书对应用进行签名的,为了产生debug模式下证书的MD5密文,必须找到debug模式下的keystore密钥库,在不同的操作系统中,keystore位于如下位置:打开Eclipse---Windows---Preferences---Android---Build查看默认的debugkeystore位置,我的是C:\DocumentsandSettings\Administrator\.android\debug.keystore。为了操作简单其间,把debug.keystore拷贝到C:\ProgramFiles\Java\jdk1.6.0_18\bin下面去。在cmd中执行,结果如图8-5所示:图8-5注册GoogleMapAPIKey接下来,要到GoogleMapAPI的主页去申请一个Map的key了,可以访问页面。在其中的MD5fingerprint一栏中输入刚才生成的MD5密纹,如图8-6所示:图8-6GoogleMapAPIKey注册界面输入后,点GenerateAPIKey,之后会为我们产生GoogleMapAPI了,如下图,这个API是在程序中可以使用的。获得的Key如图8-7所示:图8-7获取GoogleMapAPIKey其中还给出了如何在android中使用该API的方法。调用代码如下:com.google.android.maps.MapViewandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:apiKey=0V9kBkS2tEPQ8VYcLBiS5M3_uYZuLrIGH3V8Vpw/本段代码拷贝到mapview.xml对应位置8.3.4开始创建AndroidGoogleMap应用编写AndroidMap应用并不复杂,只需要继承MapActivity类就可以了。MapView这个类功能是从GoogleMap地图中获得数据并且展示地图。在用GoogleApisMapView之前,需要增加GoogleMaps扩展类库(com.google.android.map)引用到系统中来。先来看看AndroidManifest.xml,代码如下:?xmlversion=1.0encoding=utf-8?manifestxmlns:android==com.google.googlemapandroid:versionCode=1android:versionName=1.0uses-permissionandroid:name=android.permission.ACCESS_COARSE_LOCATION/uses-permissionandroid:name=android.permission.ACCESS_FINE_LOCATION/uses-permissionandroid:name=android.permission.INTERNET/applicationandroid:icon=@drawable/iconandroid:label=@string/app_nameactivityandroid:name=.GoogleMapandroid:label=@string/app_nameintent-filteractionandroid:name=android.intent.action.MAIN/categoryandroid:name=android.intent.category.LAUNCHER//intent-filter/activityuses-libraryandroid:name=com.google.android.maps//applicationuses-sdkandroid:minSdkVersion=5//manifest上面的代码,有如下要点:需要加入用户库引用uses-libraryandroid:name=com.google.android.maps/还要加入权限的定义,允许系统进行网络通讯(网络套接字)uses-permissionandroid:name=android.permission.INTERNET/uses-permissionmain.xml,代码如下:?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentcom.google.android.maps.MapViewxmlns:android=:id=@+id/map_viewandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:clickable=trueandroid:enabled=trueandroid:apiKey=0V9kBkS2tEPQ8VYcLBiS5M3_uYZuLrIGH3V8Vpw//LinearLayout注意,其中要把你获得的GoogleMap的APIKEY写到MapView控件中去。在继承了MapActivity类后,要实现其中的isRouteDisplayed方法,这个方法是用来表示是否显示一些路线的信息,这个通常用在地图的飞行模式时才使用,这里不提供任何信息仅是返回false即可。在activity中,引用到MapView,它是在界面xml中定义的。同时也用到setBuiltInZoomControls方法设置地图允许缩放模式。GoogleMap.java代码如下:importandroid.os.Bundle;importcom.google.android.maps.MapActivity;importcom.google.android.maps.MapView;publicclassGoogleMapextendsMapActivity{privateMapViewmapView;privateMapControllermapController;/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);//getmapviewMapViewmv=(MapView)findViewById(R.id.map_view);MapControllercontroller=(MapController)mv.getController();GeoPointp=newGeoPoint((int)(31.251598*1000000),(int)(120.56787*1000000));//地理坐标controller.animateTo(p);controller.setZoom(10);mv.setBuiltInZoomControls(true);}@OverrideprotectedbooleanisRouteDisplayed(){//TODOAuto-generatedmethodstubreturnfalse;}}以上代码中:代码描述可以参考,

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功