




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发Google地图应用程序简介Android提供了Google外部地图库“com.google.android.maps”作为附加功能,以开发基于Google API的应用程序。该地图库提供了内置的地图下载、渲染和地图图片缓冲以及各种显示选项和控件。本文假定您用户当前正在使用Eclipse IDE和已经加入其中的Android插件来开发应用程序。安装Google API开始开发Google地图应用程序之前,请确认您您已在Android SDK中安装了Google API插件。外部地图库未包括在SDK中所提供的标准Android库中。Google API附加工具提供了地图库,从而可开发、建立并运行Android SDK中基于地图的应用程序。如欲查看Google API是否已添加入Android SDK中,开启图1中所示的Android SDK和AVD管理器。如果Google API尚未安装,则需手动对其进行安装。选择“Installed Options(已安装选项)”部分,以查看已经安装的内容,并选择“Available Packages(可用包)”来下载附加的API.图2显示了Google API已添加至Android SDK中。创建项目满足所有必要条件之后,开始开发应用程序。首先在Eclipse IDE中创建Google地图项目,如图3中所示。给定所需的项目名称,并选择所希望的目标为Google API。使用“Google API”作为目标非常重要,因为该选项包括了可允许您使用Google地图的Google扩展件。如果您您无法查看Google API选项,则需根据安装Google API部分的描述来进行安装。创建带有Google API的AVD创建项目后,您需创建可支持Google API的设备。开启Android SDK和AVD管理器,如图1所示。选择“Virtual devices(虚拟设备)”。点击“New(新建)”按钮,创建AVD。将出现如图4所示的对话框。指定AVD的名称,并选择“Google API(Google公司)”目标中的其中之一。配置其他选项,然后点击“Create AVD(创建AVD)”。可运行该项目的新AVD已经创建。获取Google API注册码Google地图库提供了渲染地图的Google地图数据。由于应用程序将访问Google数据,因此开发人员需注册Google网络服务。Google地图API注册码要求允许Google API可相应访问能够提供地图数据的网络服务。注册获取一个简单、免费的地图API注册码,其包括两部分:1. 提取证书的MD5fingerprint。2. 注册证书的MD5fingerprint。提取MD5fingerprint 认证如欲获注册获取一个地图API注册码,开发人员需提供MD5fingerprint 认证,这可使其用来签署应用程序。此处我们需要使用两种应用程序。debug.keystore默认情况下,构建工具默认在已激活的AVD目录中创建调试keystore。不同的平台,AVD目录的位置也不同:- Windows Vista: C:Users.androiddebug.keystore- Windows XP: C:Documents and Settings.androiddebug.keystore- OS X和Linux: /.android/debug.keystorekeytool.exekeytool.exe您需使用随JDK安装所包含的keytool.exe应用程序来提取MD5fingerprint。该fingerprint需申请免费的Google地图注册码。该keytool.exe文件通常出现在Windows的%JAVA_HOME%/bin目录或Linux/OS X的$JAVA_HOME/bin目录中。由于我们当前正在调试模式下开发和调试应用程序,因此我们需在调试模式下签署应用程序,即SDK构建工具将自动使用调试证书签署您的应用程序。如欲进入该应用程序,我们需提取MD5fingerprint认证,并且为此目的需要使用debug.keystore文件。如果您无法查找debug.keystore文件,则可选择Eclipse IDE中的Windows Preferences Android Build来检查路径。图5显示了Eclipse IDE中的debug.keystore路径.一旦您已查找到keystore,则使用此Keytool命令来获取调试证书的MD5fingerprint。$ keytool -list -alias androiddebugkey -keystore .keystore -storepass android -keypass android例如: $ keytool -list -alias androiddebugkey -keystore C:androiddebug.keystore” -storepass android -keypass android注册证书的MD5fingerprintkeytool的输出类似于图6中所示的情况。复制MD5证书,并打开网页浏览器至/android/maps-api-signup.html。如图7中所示,同意Google API的条款和条件,并输入该证书的MD5fingerprint。点击“Generate API Key(生成API注册码)”按钮,以生成API注册码。所生成的API注册码如图8中所示。修改AndroidManifest.xml现在访问应用程序中的Google地图,开发人员需要通过以下操作来修改AndroidManifest.xml文件。添加许可您需要使用标记元素来添加网络许可,要求的许可如下:- android.permission.ACCESS_COARSE_LOCATION或- android.permission.ACCESS_FINE_LOCATION - android.permission.INTERNET添加库您需要使用标记元素来添加Google地图库。这是因为Google地图库并非是该标准库的完整部分。最终的AndroidManifest.xml文件如图9中所示。正如您所见,其放置于该元素以及该元素内部中元素的外部。修改main.xml现在打开该项目的reslayout文件夹中出现的main.xml文件。开发人员需要使用该元素来显示您的活动中的Google地图。使用元素来定位活动范围内的地图。已修改的main.xml如图10中所示。正如您所见,该Google地图API注册码已在main.xml文件中输入。创建GoogleMap Activity通过扩展MapActivity类而非Activity类来实现在应用程序中渲染地图。MapActivity实际上是一种具有代码的基类,可管理能够显示MapView的任何一个Activity的繁琐事务。Activity的责任包括:- Activity生命周期管理- 为MapView类创建和撤销服务为了从MapActivity进行扩展,我们必须执行isRouteDisplayed方法,该方法表示是否显示任何种类的路线信息,如交通、卫星、街道视图信息。我们将不会提供此类信息,因此这里我们仅能返回false。请在继续之前查看Google地图API文档。该GoogleMap类如图11中所示。部署应用程序如欲在模拟器上部署应用程序,按下Eclipse IDE中的F11。该输出如图12中所示。如您所见,该地图已在应用程序中予以渲染,并且可添加内置的缩放控件来缩放地图。变更地图视图在默认的情况下,Google地图将在地图模式下予以显示。如果您希望在卫星视图中显示该地图,则可使用MapView类的setSatellite()方法来实现,如下:mapView.setSatellite(true);您还可使用setStreetView()方法在街道视图中显示该地图。mapView.setStreetView(true);图13分别展示了卫星和街道视图中显示的Google地图。显示特别的位置在默认的情况下,Google地图首次加载时即可显示美国的地图。但是,您也可设置Google地图来显示一个特别的位置。在此情况下,您可使用MapController类的animateTo()方法。如图14中所示,获取了来自MapView的一个MapController。然后,使用GeoPoint对象来表示一个地理位置。GeoPoint类位置的经纬度以微米度数(存储为整数值)来表示。如欲将地图导航移至一个特别的位置,我们需要使用MapController类的animateTo()方法和setzoom()方法来设定缩放比例。该输出如图15中所示。此GeoPoint坐标表示墨西哥城。添加Overlay项目迄今为止,我们已看到了地图,但是您可能希望创建并添加标志和停留点至地图中,从而显示名胜之地。目前我们将添加标志至地图中。首先,我们需要显示标志的图片。复制图16,并将其添加至该项目的res/drawable文件夹中。如图17所示。您首先需要定义一个可扩展Overlay类的类,以便添加标志至地图中:在您必须加以定义的MapOverlay类中,重载draw()方法以便可在地图中绘制图钉图片。特别注意需要将地理位置(通过GeoPoint对象p来表示)转换成屏幕坐标。添加标志的方法为: 创建MapOverlap类示例,并将MapOverlap类示例添加至MapView对象可用的overlays列表中。图18显示了最终代码。该输出如图19中所示。GoogleMap应用程序以下显示了GoogleMap项目文件main.xml AndroidManifest.xml GoogleMap.javapackage com.samsung.maps.google;import java.util.List;import android.content.Context;import android.content.res.Resources;import android.os.Bundle;import com.google.android.maps.MapActivity;import com.google.android.maps.GeoPoint;import com.google.android.maps.MapController;import com.google.android.maps.MapView;import com.google.android.maps.Overlay;public class GoogleMap extends MapActivity MapView mapView; MapController mc; GeoPoint p; Resources res; Context context; MapOverlay mapOverlay; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); res = getResources(); context = getApplicationContext(); mapView = (MapView) findViewById(R.id.mapView); mapView.setBuiltInZoomControls(true); mc = mapView.getController(); p = new GeoPoint(19240000,-99120000); mc.animateTo(p); mc.setZoom(8); /Add location marker /MapOverlay mapOverlay = new MapOverlay(); mapOverlay = new MapOverlay(p, res, context); List listOfOverlays = mapView.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(mapOverlay); mapView.invalidate(); Override protected boolean isRouteDisplayed() return false; MapOverlay.javapackage com.samsung.maps.google;import android.content.Context;import android.content.res.Resources;import com.google.android.maps.Overlay;import android.app.AlertDialog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Point;import com.google.android.maps.GeoPoint;import com.google.android.maps.MapView;public class MapOverlay extends Overlay Resources res; Context context; GeoPoint geoPoint; public MapOverlay(GeoPoint g, Resources r, Context c) super(); re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亲情话题的课件
- 亲子阅读汇报课件
- 公司考勤管理培训课件
- 少儿才艺比赛策划书
- 物业综合经理工作总结
- 美术室规章制度
- 研究生个人年终总结报告
- 行政人事年终个人工作总结
- 《表情丰富的脸》课件
- 《虽有嘉肴》课件
- 超星尔雅学习通《经济与社会如何用决策思维洞察生活》章节测试答案
- 如何防范企业网络入侵与黑客攻击
- 剑桥Think第一级Unit+1+Welcome课件
- 华为财务管理(6版)-华为经营管理丛书
- 横河CS3000工程师培训资料
- LY/T 3355-2023油茶
- DB15-T 2241-2021 数据中心绿色分级评估规范
- 消防初级考试题库
- 吐鲁番地区鄯善县区域环境概况自然及社会环境概况
- 张掖固化抛光地坪施工方案
- 国家中长期科技发展规划纲要2021-2035
评论
0/150
提交评论