KC10880109-i17基于android和google_第1页
KC10880109-i17基于android和google_第2页
KC10880109-i17基于android和google_第3页
KC10880109-i17基于android和google_第4页
KC10880109-i17基于android和google_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于android和google map的地图定位程序的设计与实现Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。它由谷歌公司和开放手持设备联盟开发和领导。除了开放手持设备联盟之外,Android还拥有许多由全球各地开发者组成的开源社区来专门负责开发Android应用程序和第三方Android操作系统来延长和扩展Android的功能和性能。2011年8月,Android操作系统在全球智能手机操作系统的市场份额已达48%,成为全球第一大智能手机操作系统,跃居全球最受欢迎的智能手机平台。Google Map,是Google公司向全球提供的电子地图服务,包括局部详细的卫

2、星照片。由于Google地图是一项电子地图服务,因而拥有比纸质地图更多的优越性,特别是近年来移动设备的智能化,网络速度的提升,更是让Google地图与人们的生活产生更为紧密的联系,因而倍受人们的赞誉。Android操作系统平台很容易跟Google的一些应用如Google Map整合。在Android应用中,如果能在其中加入Google Map,则会为应用增添强大的功能,目前不少LBS应用(基于地理位置的应用)就是充分将移动跟地图结合起来。本设计旨在为使用基于Android操作系统的移动设备(如手机、平板电脑等)的用户提供一种准确、方便的定位系统,可以通过经纬度信息,甚至仅仅是地名,就能在地图上

3、找到该地的地理位置。软件的开发使用Java语言、Google APIsAndroid 2.2开发包和Eclipse 3.3开发环境。关键词:Android;Google Map;定位;Google APIs;Json目录一、设计目标41.1 Android平台简介41.2 Google地图简介41.3功能实现4二、环境配置52.1下载相关软件52.2安装软件和配置环境52.2.1安装JDK52.2.2安装Eclipse62.2.3配置Android环境62.3创建基于Google APIs的AVD62.4获取Google Map API72.4.1安装Google Map API72.4.2获

4、得Google Map API Key7三、设计思路93.1通过经纬度定位的设计思路93.2通过地名定位的设计思路9四、设计过程114.1Google Map API 的使用114.2通过经纬度定位的实现114.2.1创建工程114.2.2 修改AndroidManifest.xml 文件114.2.3修改main.xml114.2.4实现MapActivity124.2.5 MapController 的使用124.2.6增加标记124.3通过地名定位的实现134.3.1监听响应函数的实现134.3.2 getLocationInfo()函数的实现134.3.3 getPoint()函数的实

5、现14五、结果测试155.1启动MapIII155.2一些简单的操作165.3测试通过经纬度定位175.4测试通过地名定位175.5退出程序18六、程序发布196.1生成keystore196.2 eclipse生成apk文件19七、总结21参考文献22附录:231.AndroidManifest.xml232. main.xml233.strings.xml254.MapIIIActivity.java265.R.java316.包含“合肥学院新区”的相关地理信息的Json数据32一、设计目标1.1 Android平台简介Android是Google于2007年11月05日宣布的基于Linu

6、x平台的开源移动操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2

7、011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。1.2 Google地图简介提起Google,人们最先想到的一定是它的搜索引擎,不过继搜索引擎之后,Google地图的影响力越来越大。在Android系统刚刚起步的时候,Google就看到了基于定位服务的应用潜力,并将Google地图的成功经验带入了Android系统当中。很多基于定位功能的应用程序最终都需要显示地图,Google地图已经可以非常成熟地显示交互式地图,其商业模式还允许第三方网站将Google地图嵌入到自己的页面中。Google地图的大部分功能都可以在Android平台上实现,

8、Android平台下的开发者可以将Google地图嵌入到自己的应用程序中。Google地图是 Google 公司提供的电子地图服务,包括局部详细的卫星照片。能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟 Google Earth 上的卫星照片基本一样);三是地形视图,可以用以显示地形和等高线。1.3功能实现本设计旨在为使用基于Android操作系统的移动设备(如手机、平板电脑等)的用户提供一种准确、方便的定位系统,可以通过经纬度信息,甚至仅仅是地名,就能在地图上找到该地的地理位置。软件的开发使用Java语言、Google APIsA

9、ndroid 2.2开发包和Eclipse 3.3开发环境。二、环境配置2.1下载相关软件表2.1相关软件软件名称对应下载网址JDK6.0Eclipse 3.3/downloads/Android SDK2.2安装软件和配置环境2.2.1安装JDK下载好JDK是一个可执行安装程序,双击安装。假设安装路径为:C:/Program Files/Java/jdk1.6.0_05(当然其他路径也可以)。JDK安装完成之后要设置系统环境变量: 我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置。环境变量设置,分别设置三个环境变量:JAVA_HOME

10、、path变量、classpath变量。1.设置JAVA_HOME在系统环境变量那一栏中,点“新建”JAVA_HOME(JAVA_HOME指向的是JDK的安装路径)。变量名:JAVA_HOME;变量值:C:/Program Files/Java/jdk1.6.0_05。设置JAVA_HOME量的目的:(1)为了方便引用,比如,JDK安装C:/Program Files/Java/jdk1.6.0_05目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串。(2)归一原则, 当JDK路径改变的时候, 仅

11、需更改JAVA_HOME的变量值即可。否则,就要更改任何用绝对路径引用JDK目录的文档,没有改全则某个程序找不到JDK, 后果将导致系统崩溃。(3)第三方软件会引用约定好的JAVA_HOME变量, 否则不能正常使用该软件。2.设置path变量在系统变量里找到path变量,选择“编辑”变量名:path ,变量值: %JAVA_HOME%/bin。设置path变量的目的:使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等,这就要找到我们安装JDK的目录,比如我们的JDK安装在C:/Program Files/Java/jdk1.6.0_05目录下,那么在C:

12、/Program Files/Java/jdk1.6.0_05/bin目录下就是我们常用的java应用程序,我们就需要把C:/jdk1.6.0/bin这个目录加到path环境变量里面。3.设置classpath环境在系统环境变量那一栏中点“新建”classpath。变量名: classpath ,变量值:.;%JAVA_HOME%/lib/;%JAVA_HOME%/jre/lib/(注意,CLASSPATH最前面是有个“.”的,表示当前目录,这样当我们运行java AClass的时候,系统就会先在当前目录寻找AClass文件了)。2.2.2安装Eclipse将下载的Eclipse3.3压缩包解

13、压到相应的安装目录即可。2.2.3配置Android环境为了让开发过程更轻松,Google还编写了一款ADT的Eclipse插件。要想安装该插件,请执行以下步骤。启动Eclipse,然后选择Help>Software Updates。单击Available Software选项卡。单击Add Site按钮。输入Android更新站点的位置:https:/dl-现在,该Android站点应该出现在Available Software视图中。选中该站点旁边的复选框,然后单击Install。如果出现错误信息,原因可能是Eclipse的版本不对。单击Finish开始下载安装过程。安装完成后,重新

14、启动Eclipse。Eclipse启动后可能出现几条错误信息,因为此时需要告诉你Android SDK位于何处。选择Window>Preferences>Android,然后输入你在前面记下的SDK安装目录。单击OK按钮。2.3创建基于Google APIs的AVD 在Eclipse中打开AVD管理界面,点击“new”按钮,在“Create new AVD”对话框的Name处填写AVD的名字GM,在Target处选择“Google APIs (Google Inc.) API Level 8”,如图2.1所示,点击“Create AVD”按钮完成创建。图2.1创建AVD2.4获取G

15、oogle Map API2.4.1安装Google Map API开发基于谷歌地图的应用和普通的Android 应用差不多都要使用它提供给我们的类库,所不同的是Google Map的类库不是Android 平台的基本类库,而是Google API的一部分,所以建立项目时,SDK 要选择Google APIs选项。2.4.2获得Google Map API Key在正式使用Google Map API 前,必须先生成Google Map API KEY。1.找到debug.keystore 文件在Eclipse工具下,选择windowsPreferenceAndroidBuild,其中Defa

16、ultdebug keystore的值便是debug.keystore的路径。2.取得debug.keystore的MD5值首先cmd命令行进入debug.keystore文件所在的路径,执行命令:keytool -list -keystore debug.keystore,默认的密码是:android,即可取得MD5值了,如图2.2所示。图2.2获得MD5 3.申请Android Map 的API Key打开浏览器,输入网址: Key了,结果显示如图2.3所示。图2.3获得API三、设计思路3.1通过经纬度定位的设计思路本功能实现的目标是:在两个EditText对话框中分别输入经度和纬度之后

17、,点击相应的Button按钮,在屏幕中的地图中会显示出所定位的位置,并在此位置上做出标记。首先要引用com.google.android.maps包来实现一个地图浏览程序,创建一个MapView对象来显示地图。通过MapController对象来设置地图显示的地点以及放大的倍数,要定位地点需要构建一个GeoPoint对象来表示地点的经度和纬度,然后使用animateTo方法将地图定位到指定的GeoPoint对象上,再新建一个Overlay对象并在上面标注一些图标文字信息。3.2通过地名定位的设计思路本功能的实现目标是:在一个EditText里输入一个地名,点击Button,在MapView里便

18、会显示出该地。实际上,由于在Google Map中必须获得经纬度才能定位,故本定位方法不过是前一种定位方法的加强版,即先通过地名获得该地的经纬度,再通过经纬度进行定位。由此可知,本设计的核心内容,便是如何通过地名获得该地的经纬度。本来此问题应该很好解决,因为Google提供了一个用于实现该功能的Geocoder类,只要使用该类生成一个对象,并使用getFromLocationName()方法,只需几句代码便可轻松将地名转换为相应的经纬度,我们手中的android开发教材和网络上能够搜索到的绝大部分资料中使用的都是该方法,如下:Geocoder geocoder=new Geocoder(thi

19、s);List<Address> list=geoCoder.getFromLocationName(Address,1); /Address是输入的地址信息if(!lstAddress.isEmpty()Address address=list.get(0);double latitude=address.getLatitude()*1E6;double longitude=adress.getLongitude()*1E6;GeoPoint geopoint=new GeoPoint(int)latitude,(int)longitude);但我们在实际的开发过程中发现,在调试

20、程序时,点击Button后,程序没有任何响应。经反复调查研究后我们得知,由于google map中的Getcoder反转经纬度一直存在BUG,在前一段时间google终止了这项服务,故Geocoder返回List为null,得不到地址信息。当我们正一筹莫展之时,我们从一份资料上获得了另一种新的但较为麻烦的获取地理位置经纬度的方法:通过JSON数据解析地址。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完

21、全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯,这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。在浏览器的地址栏里输入以下网址:“n?address=合肥学院新区&sensor=false”(其中“合肥学院新区”可以更换成任意地址,中英文皆可),便可得到一份JSON数据(见附录),里面包含了许多关于合肥学院新区站的地理位置信息的键值对,其中我们可以找到合肥学院新区站的经纬度"location" : "lat" : 31.7543920,"lng" : 117.2503090。那

22、么,程序所要做的,就是通过该网址发送http请求,获得Json数据,并且把我们需要的经纬度数据“抽取”出来,填入到GeoPoint的对象中,就可以用上一种方法定位了。 设计思路大体如此,具体的设计过程中会涉及到在android中通过http请求网络资源和Json数据的解析等较为高级的核心技术,手中的几本android开发教材中都找不到相关的介绍,只能通过从网上搜集到的一些少量的、零散的资料中略窥一斑,因此我们也是摸着石头过河。四、设计过程4.1Google Map API 的使用Android中定义了一个名为com.google.android.maps的包,其中包含了一系列用于在Google

23、 Map上显示、控制和层叠信息的功能类,以下是该包中最重要的几个类:MapActivity:这个类是用于显示Google Map的Activity类,它需要连接底层网络MapActivity是一个抽象类,任何想要显示MapView的activity都需要派生自MapActivity,并且在其派生类的onCreate()中,都要创建一个MapView实例。MapView:用于显示地图的View组件。它派生自android.view.ViewGroup。它必须和MapActivity配合使用,而且只能被MapActivity创建,这是因为MapView需要通过后台的线程来连接网络或者文件系统,而这

24、些线程要由MapActivity来管理。MapController:用于控制地图的移动、缩放等。Overlay:可用于显示地图之上的可绘制的对象。GeoPoint:一个包含经纬度位置的对象。4.2通过经纬度定位的实现4.2.1创建工程在Eclipse环境下,选择FileNewProjectAndroid,选择Android Project。创建方法同普通Java项目和其他Android项目并无明显区别,但必须在Build Target 中勾选Google API。4.2.2 修改AndroidManifest.xml 文件因为地图应用使用的是Google Maps 的类库,而不是Android

25、 的标准类库,所以需要在AndroidManifest.xml 文件的</application>标签中声明:<uses-library android:name="com.google.android.maps" />由于需要从网络获取地图数据,所以需要访问网络的权限:<uses-permission android:name="android.permission.INTERNET" />4.2.3修改main.xml需要在main.xml里创建一个来自com.google.android.maps.MapView

26、的MapView标签。其中clickable属性设置了是否允许用户和地图的交互,apiKey里填写的就是刚刚申请到的apiKey: <com.google.android.maps.MapViewandroid:id="+id/mapView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:clickable="true"android:apiKey="0avAw-1ozxNMipBtFVOv

27、-v9zzbSNrxLcMqhp_DA"/> 4.2.4实现MapActivityMapView需要由MapActivity来管理,所以程序部分应该继承自Activity的一个特殊子类MapActivity类,同时必须实现isRouteDisplayed()函数,获得MapView实例以后,通过setBuiltZoomControls方法设置地图是否支持缩放。另外MapView提供了三种模式的地图,分别可以通过以下方式设置采用什么模式来显示地图:mapView.setTraffic(true); /设置为交通模式mapView.setSatellite(true); /设置为卫

28、星模式mapView.setStreetView(false);/设置为街景模式4.2.5 MapController 的使用如果需要设置地图显示的地点以及放大倍数等,就需要使用MapController来控制地图。可以通过如下代码获得MapController对象:MapController mapController; mapController = mapView.getController(); 要定位地点,需要构造一个GeoPoint来表示地点的经纬度,然后使用animateTo方法将地图定位到指定的GeoPoint上,代码如下:GeoPoint geoPoint01;geoPoin

29、t01= new GeoPoint(int) (editText01double * 1000000), (int) (editText02double * 1000000); mapController.animateTo(geoPoint01);4.2.6增加标记为了给地图多增加一些自定义的功能,比如可以在地图上进行一些标注。为了实现这样的功能,我们可以继承Overlay 这个类,这个类是一个基类,提供了可以在地图上添加图层的基本功能。在定位的目标地点引入一张图片做标记,代码如下:canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords

30、.y, paint);在定位的目标地点添加文字做标记,代码如下:canvas.drawText("定位目标", myScreenCoords.x, myScreenCoords.y, paint);4.3通过地名定位的实现4.3.1监听响应函数的实现1.从TextView对象中获取输入的地址信息:String address=editText03.getText().toString();2.下面调用了两个函数getLocationInfo()和getGeoPoint(),前者通过http取得Json数据,返回的是JsonObject对象,交给后者;后者解析出JsonObj

31、ect对象中的经纬度数据,交给GeoPoint对象,并将GeoPoint对象返回:geoPoint02=getGeoPoint(getLocationInfo(address);3. 使用animateTo方法将定位:mapController.animateTo(geoPoint02);4.3.2 getLocationInfo()函数的实现1.根据url地址创建HttpGet请求对象:HttpGet httpGet=new HttpGet("geocode/json?address=" + address + "&sensor=false")

32、; 2.创建http客户端对象: HttpClient httpClient=new DefaultHttpClient();3.创建http响应对象: HttpResponse httpResponse; 4.定义一个字符串缓冲区,与一般的String对象的区别是StringBuffer对象里面的内容可以增加和修改,用于存储从InputStream对象中读取出的字符串:StringBuffer stringBuffer=new StringBuffer(); 5.通过HttpClient对象执行一次GET方式的http请求,并返回一个HttpResponse对象作为服务器的响应:httpRe

33、sponse=httpClient.execute(httpGet); 6.获取响应的内容,这里需注意HttpResponse对象只是代表了服务器的响应,HttpEntity对象才是该响应的实体:HttpEntity httpEntity=httpResponse.getEntity();7.获取服务器响应的输入流,getContent()方法可以得到其内容:InputStream inputStream=httpEntity.getContent();8.循环读取服务器响应。将从InputStream对象中读取出的字符元素赋值给整型对象b,一般来说赋值的结果不可能是-1,只有当InputSt

34、ream对象读完时才会得到-1。在该循环里将整型对象b的内容转换成字符元素并追加给stringBuffer,注意此时字符元素对象b的内容与从InputStream对象中读取出的字符元素一致,这样就实现了读取服务器响应: int b;while (b=inputStream.read()!=-1) stringBuffer.append(char)b); 9.关闭输入流: inputStream.close(); 10.创建一个JSONObject对象:JSONObject jsonObject=new JSONObject(); 11.将StringBuffer对象里的字符串转换为JSONOb

35、ject对象:jsonObject=new JSONObject(stringBuffer.toString(); 12.返回该JSONObject对象:return jsonObject;4.3.3 getPoint()函数的实现1.定义两个double数组,用于储存经纬度信息: Double lon=new Double(0); Double lat=new Double(0); 2.从JSONObject对象中取出代表纬度的"lng"的值,具体过程是:先得到”result”里的值,从值里取得第一个结果,在逐步往下”geometry”location”lng”,最终得到

36、"lng"里的值:lon=(JSONArray)jsonObject.get("results").getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng");3.从JSONObject对象中取出代表经度的"lat"的值,过程同上:lat=(JSONArray)jsonObject.get("results").getJSONObject(0).

37、getJSONObject("geometry").getJSONObject("location").getDouble("lat"); 4.将取得的经纬度数据转换成GeoPoint对象并返回: return new GeoPoint(int)(lat*1E6),(int)(lon*1E6);五、结果测试5.1启动MapIII在Eclipse界面里选择Run菜单,点击Run Cunfigurations,弹出一个对话框。先看Android标签,在Project里找到要运行的项目MapIII并选中;在Target标签里,选择之前建立的

38、AVD。点击Run即可运行。如图5.1和图5.2。图5.1选择项目图5.2选择AVD5.2一些简单的操作1.程序启动后,得到如图的结果。默认的地图是美国某城市,并且是是卫星图,如图5.3。图5.3默认地图2.点击屏幕,出现控制放大和缩小的按钮,可用其放大或缩小屏幕,如图5.4。3.点击“交通图”按钮,便可切换为交通图,如图5.5。点击“卫星图”按钮会回到卫星图。 图5.4卫星图 图5.5交通图5.3测试通过经纬度定位在相应的输入框中输入香港某地的经纬度(22.2806,114.1650),点击“定位”按钮,地图便会跳转到该地点,并在该点上显示图片和“定位的目标”,如图5.6和图5.7。 图5.

39、6经纬度定位(卫星图) 图5.7经纬度定位(交通图)5.4测试通过地名定位 在地址栏中输入“合肥学院新区”,点击“查找”按钮,地图便会跳转到合肥学院新区,如图5.8和图5.9所示。 图5.8 地名搜索(卫星图) 图5.9地名搜索(交通图)5.5退出程序 点击menu按钮,在弹出的菜单中选择“退出”,如图5.10,程序便可结束。图5.10退出菜单六、程序发布对于绝大部分开发者而言,编写Android手机应用程序的目的除了自娱自乐外,最重要的就是和别人分享,可以收费,也可以免费。Google已经为此创建了一个Android电子市场。任何一款具有联网功能的Android手机都可以打开Android电

40、子市场,其中有成千上万的应用程序可供用户下载。在Android电子市场上发布自己的应用程序之前,必须先对其进行签名。事实上,在应用程序的开发过程中就已经在进行数字签名了,当每次通过Eclipse启动应用程序时Android SDK会自动为程序生成一个调试签名。问题是调试签名并不能用于在Android电子市场上发布应用程序,必须专门为应用程序的发布生成一个新的签名。6.1生成keystore按照下面的命令行在C:Program FilesJavajdk1.6.0_30bin>目录下,输入:keytool -genkey -alias android.keystore -keyalg RSA

41、 -validity 100000 -keystore android.keystore,其中-validity主要是证书的有效期,本次设为100000天。然后依提示进行,空格和退格键都可作为密码。如图6.3所示。命令执行后会在C:Program FilesJavajdk1.6.0_30bin>目录下生成 android.keystore文件。图6.1生成keystore6.2 eclipse生成apk文件1.选择要打包的项目,右键点击Android toolsExport Signed Application Package并选择打包的项目。2.选择生成的android.keystor

42、e文件并输入密码,如图6.2。图6.2选择android.keystore文件并验证3.再选择alias key并输入密码,如图6.3。图6.3选择alias key文件并验证4.最后选择生成Android apk文件的目录及文件名,最终生成apk文件,如图6.4。图6.4最终的apk文件附录:1.AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=" package="chenzhen.mapiii&quo

43、t; android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="drawable/ic_launcher" android:label="string

44、/app_name" > <uses-library android:name="com.google.android.maps" /> <activity android:name=".MapIIIActivity" android:label="string/app_name" > <intent-filter> <action android:name="ent.action.MAIN" /> <categoryand

45、roid:name="ent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>2. main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layout_width="fill_parent" and

46、roid:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="+id

47、/editText01" android:layout_width="135dp" android:layout_height="wrap_content" android:text="string/editText01" /> <EditText android:id="+id/editText02" android:layout_width="135dp" android:layout_height="wrap_content" android:te

48、xt="string/editText02" /> <Button android:id="+id/button01" android:layout_width="50dp" android:layout_height="wrap_content" android:text="string/button01" /> </LinearLayout> <LinearLayout xmlns:android=" android:layout_width=&

49、quot;fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="+id/textView01" android:layout_width="50dp" android:layout_height="wrap_content" android:text="string/textView01" /&g

50、t; <EditText android:id="+id/editText03" android:layout_width="220dp" android:layout_height="wrap_content" android:text="string/editText03" /> <Button android:id="+id/button02" android:layout_width="50dp" android:layout_height=&quo

51、t;wrap_content" android:text="string/button02" /> </LinearLayout> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="+i

52、d/textView02" android:layout_width="60dp" android:layout_height="wrap_content" android:text="string/textView02" /> <Button android:id="+id/button03" android:layout_width="80dp" android:layout_height="wrap_content" android:text=&q

53、uot;string/button03" /> <Button android:id="+id/button04" android:layout_width="80dp" android:layout_height="wrap_content" android:text="string/button04" /> </LinearLayout> <com.google.android.maps.MapViewandroid:id="+id/mapView&quo

54、t;android:layout_width="fill_parent"android:layout_height="wrap_content"android:clickable="true"android:apiKey="0avAw-1ozxNMipBtFVOv-v9zzbSNrxLcMqhp_DA"/> </LinearLayout>3.strings.xml<?xml version="1.0" encoding="utf-8"?><

55、resources> <string name="hello">Hello World, MapIIIActivity!</string> <string name="app_name">MapIII</string> <string name="editText01">请填入纬度</string> <string name="editText02">请填入经度</string> <string name=&

56、quot;button01">定位</string> <string name="textView01">地址:</string> <string name="editText03">合肥学院新区</string> <string name="button02">查找</string> <string name="exit">退出</string> <string name="textView02">地图切换:</string> <string name="button03">卫星图</string> <string name="button04">交通图</string><

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论