版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《腾讯1+x安卓应用开发(中级)》教案
一、教案设计课题项目3任务1显示基础地图课型理论课理论课时1课时实践课时2课时教学目标知识目标能力(技能)目标1.熟悉腾讯位置服务地图key的获取和配置方法2.熟悉在项目中集成SDK的方法。3.熟悉显示地图需要哪些权限。能利用腾讯提供的位置服务在界面上显示基础地图。教学重点掌握显示基础地图的方法。教学难点图形绘制的常用类和方法的灵活使用教学内容想要使用腾讯位置服务地图SDK,必须先申请一个开发者账号,申请地址:/dev/console/home。然后前往/console/key.html,申请APIKey。1.获取key(1)进入控制台左侧应用管理->我的应用,创建新密钥。图6-2创建新密钥(2)点击创建应用,设置应用名称和应用类型。图6-3创建应用(3)点击添加KEY,填写KEY名称、描述、阅读并同意使用条款等应用信息。图6-4添加KEY(4)key需要勾选地图SDK权限配置。在红框处填写包名。图6-5勾选地图SDK权限配置2.在项目中集成SDK(1)在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址。AndroidStudio默认会在Project的build.gradle为所有module自动添加jcenter仓库地址,如果已存在,则不需要重复添加。buildscript{repositories{google()jcenter()mavenCentral()}dependencies{classpath"com.android.tools.build:gradle:4.1.1"}}allprojects{repositories{google()jcenter()mavenCentral()}}(2)在主工程appmodule的build.gradle文件配置dependencies。如需引入指定版本SDK(所有SDK版本号与官网发版一致),则在appmodule的build.gradle中修改maven仓库版本号。dependencies{//地图库implementation'com.tencent.map:tencent-map-vector-sdk:4.4.1'}3.在AndroidManifest.xml的application标签中配置key在AndroidManifest.xml文件的application标签里,添加名称为TencentMapSDK的meta,如下所示,value值是步骤1中申请的key。<application <meta-dataandroid:name="TencentMapSDK"android:value="申请的key"/></application>4.在AndroidManifest.xml中添加权限配置地图SDK需要使用网络,访问硬件存储等系统权限,在AndroidManifest.xml文件里,添加如下权限。<!--通过GPS得到精确位置--><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><!--通过网络得到粗略位置--><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><!--访问网络,某些位置信息需要从网络服务器获取--><uses-permissionandroid:name="android.permission.INTERNET"/><!--访问WiFi状态,需要WiFi信息用于网络定位--><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><!--修改WiFi状态,发起WiFi扫描,需要WiFi信息用于网络定位--><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/><!--访问网络状态,检测网络的可用性,需要网络运营商相关信息用于网络定位--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><!--访问网络的变化,需要某些信息用于网络定位--><uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/><!--访问手机当前状态,需要某些信息用于网络定位--><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>5.显示基础地图(1)在局部文件中添加腾讯地图组件<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ui.activity.TencentMapActivity"><androidx.appcompat.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="match_parent"><com.tencent.tencentmap.mapsdk.maps.MapViewandroid:id="@+id/tencent_mapview"android:layout_width="match_parent"android:layout_height="match_parent"/></androidx.appcompat.widget.LinearLayoutCompat></androidx.constraintlayout.widget.ConstraintLayout>(2)在TencentMapActivity.java中管理地图的生命周期。创建地图视图之后,需要跟应用绑定生命周期,以保障地图在应用的不同生命周期中,能够正确地处理显示和刷新逻辑。(3)在TencentMapActivity.java中获取地图实例。TencentMapActivity.java代码如下:packagecom.example.helloworld.ui.activity;…//省略导入包publicclassTencentMapActivityextendsAppCompatActivity{privateMapViewmapView;protectedTencentMaptencentMap;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_tencent_map);mapView=findViewById(R.id.tencent_mapview);//获取地图实例tencentMap=mapView.getMap();}@OverrideprotectedvoidonStart(){super.onStart();mapView.onStart();}@OverrideprotectedvoidonResume(){super.onResume();mapView.onResume();}@OverrideprotectedvoidonPause(){super.onPause();mapView.onPause();}@OverrideprotectedvoidonStop(){super.onStop();mapView.onStop();}@OverrideprotectedvoidonRestart(){super.onRestart();mapView.onRestart();}@OverrideprotectedvoidonDestroy(){super.onDestroy();mapView.onDestroy();}}教学准备教材,PPT、教纲、教案参考资料/mobile/androidMapSDK/developerGuide/androidSummary教学过程方法与手段教学备注【课堂导入】腾讯位置服务是如何实现基础地图显示的呢?腾讯位置服务地图SDK(Android)是一套基于Android4.1及以上版本的多种地理位置服务的应用程序接口。通过调用该接口,可以轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、契合各种行业场景的地图类应用程序。也可以在自己的Android应用中加入地图相关的功能,包括:地图展示、标注、绘制图形等。【教学实施】6.1.1任务描述利用腾讯提供的位置服务在界面上显示基础地图,如图所示。6.1.2问题引导腾讯位置服务是如何实现基础地图显示的呢?腾讯位置服务地图SDK(Android)是一套基于Android4.1及以上版本的多种地理位置服务的应用程序接口。通过调用该接口,可以轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、契合各种行业场景的地图类应用程序。也可以在自己的Android应用中加入地图相关的功能,包括:地图展示、标注、绘制图形等。6.1.3知识准备申请一个开发者账号获取key在项目中集成SDK在AndroidManifest.xml的application标签中配置key在AndroidManifest.xml中添加权限配置显示基础地图6.1.4完成基础地图的显示6.1.5知识拓展地图白屏的原因和解决办法地图黑屏的原因和解决办法【知识(技能)巩固练习】完成基础地图的显示【教学小结】讲授、演示课后作业与训练完成项目3课后练习对应的习题。教学反思
课题项目3任务2在地图上实现定位课型理论课理论课时2课时实践课时2课时教学目标知识目标能力(技能)目标1.熟悉安卓系统下GPS核心API。2.熟悉腾讯位置服务地图SDK的使用。1.能够获取定位信息,通过模拟器发送GPS信息。2.能够整合地图服务,根据GPS在地图上定位。教学重点1.定位信息的获取。2.在地图上实现定位。教学难点GPS核心API的灵活运用。教学内容定位分为GPS定位、基站定位和WIFI定位三种方式。GPS定位精度高,定位精度与环境有关,室内不能用,耗电大;基站定位精度较低,功耗大,但不受环境影响,不需要开启WIFI;Wi-Fi定位精度一般不受使用环境影响,但需要开启Wi-Fi。1.Android中GPS的核心API。(1)LocationManager类所有GPS定位相关的服务、对象都由该对象产生。该类提供的常用方法见表6-1。表6-1LocationManager类的方法方法名说明addGpsStatusListener添加一个监听GPS状态的监听器。addProximityAlert添加一个临近警告。getAllProviders获取所有的LocationProvider列表。getBestProvider根据制定条件返回最优的LocationProvider对象。getGpsStatus获取GPS状态。getLastKnownLocation根据LocationProvider获取最近一次已知的Location。getProvider根据名称来获取LocationProvider。getProviders(,)根据制定条件获取满足条件的全部LocationProvier的名称。getProviders(booleanenabledOnly)获取所有可用的LocationProvider。isProviderEnabled判断制定名称的LocationProvider是否可用。removeGpsStatusListener删除GPS状态监听器。removeProximityAlert删除一个趋近警告。requestLocationUpdates该方法有一个PendingIntent参数。通过指定的LocationProvider周期性获取定位信息,并通过Intent启动相应的组件。requestLocationUpdates该方法有一个LcoationListener参数。通过指定的LocationProvider周期性的获取定位信息,并触发listener对应的触发器。(2)LocationProvider类通过该类可以获取位置提供商的相关信息。该类提供的常用方法见表6-2。表6-2LocationProvider类的方法方法名说明getName返回该LocationProvider的名称。getAccuracy返回该LocationProvider的精度。getPowerRequirement返回该LocationProvider的电源需求。hasMonetaryCost返回LocationProvider是收费还是免费.meetsCriteria判断该LocationProvider是否满足Criteria条件。requiresCell判断该LocationProvider是否需要访问网路基站。requiresNetword判断该LocationProvider是否需要网路数据。requiresStatellite判断该LocationProvider是否需要访问卫星的定位系统。supportsAltitude判断该LocationProvider是否支持高度信息。supportsBearing判断该LocationProvider是否支持方向信息。supportsSpeed判断该LocationProvider是否支持速度信息。(3)Location类通过该类可以获取定位的相关信息。该类提供的常用方法见表6-3。表6-3Location类的方法方法名说明getAccuracy获取定位信息的精度。getAltitude获取定位信息的高度。getBearing获取定位信息的方向。getLatitude获取定位信息的经度。getLongitude获取定位信息的纬度。getProvider获取提供该定位信息的LocationProvider。getSpeed获取定位信息的速度。hasAccuracy判断该定位信息是否有经度信息。hasAltitude判断定位信息是否有高度信息。hasBearing判断定位信息是否有方向信息。hasSpeed判断定位信息是否有速度信息。2.获取GPS信息的步骤(1)获取LocationManager对象通过调用Context.getSystemService()方法可以获取实例对象;LocationManagerlocationManager=(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);(2)获取LocationProviderLocationProvider通常有三个:LocationManager.PASSIVE_PROVIDER、LocationManager.GPS_PROVIDER、LocationManager.NETWORK_PROVIDER。//获得基于GPS的LocationProviderLocationProvidergpsProvider=lm.getProvider(LocationManager.GPS_PROVIDER);(3)获取定位信息//从GPS获取最近的定位信息Locationlocation=lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);//每1秒获取一次GPS的定位信息locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,8,newLocationListener(){ @Override publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){ } @Override publicvoidonProviderEnabled(Stringprovider){ } @Override publicvoidonProviderDisabled(Stringprovider){ } @Override publicvoidonLocationChanged(Locationlocation){ //GPS定位信息发生改变时,更新位置 }});3.腾讯地图定位分为单次定位和连续定位。单次定位是指发起一次定位请求只返回一次定位结果。单次定位一般只会返回网络定位信息,这是因为手机的GPS模块通常获取定位信息要晚于网络定位。而且单次定位不需要配置TencentLocationRequest,默认requestLevel是REQUEST_LEVEL_NAME,且不需要主动调用停止定位。连续定位是指发起一次定位请求后位置服务将按照按用户指定周期,周期性的返回定位结果的一种定位方式。这种定位方式是最常见的一种定位方式。4.腾讯地图实现定位的常用接口介绍(1)接口TencentLocationListener该接口有两个方法,分别是onLocationChanged()和onStatusUpdate()。onLocationChanged用于接收定位结果,通过该方法的第1个参数tencentLocation能获得位置的信息,onStatusUpdate用于接收GPS、WiFi、Cell状态码。(2)接口LocationSource该接口有两个方法,分别是activate()和deactivate()。activate用于设置位置变化回调接口,deactivate用于取消位置变化回调。教学准备教材,PPT、教纲、教案参考资料/mobile/androidMapSDK/developerGuide/androidSummary教学过程方法与手段教学备注【课堂导入】GPS定位应用非常广泛,随着航天科技的飞速发展,GPS定位系统可实现的功能也越来越多,本任务我们将解决如何利用腾讯位置服务提供的API实现GPS定位的问题。【教学实施】6.2.1任务描述通过模拟器发送经度和维度,整合地图服务,根据经纬度在地图上实现定位。如图所示。6.2.2问题引导GPS定位应用非常广泛,随着航天科技的飞速发展,GPS定位系统可实现的功能也越来越多,本任务我们将解决如何利用腾讯位置服务提供的API实现GPS定位的问题。6.2.3知识准备Android中GPS的核心API获取GPS信息的步骤腾讯地图的单次定位和连续定位介绍腾讯地图实现定位的常用接口介绍6.2.4实现腾讯地图的连续定位。6.2.5知识拓展腾讯地图单次定位的实现【知识(技能)巩固练习】实现腾讯地图的连续定位【教学小结】讲授、演示课后作业与训练完成项目3课后练习对应的习题。教学反思
课题项目3任务3地址解析和反向地址解析课型理论课理论课时2课时实践课时2课时教学目标知识目标能力(技能)目标1.熟悉安卓系统下GPS核心API。2.熟悉腾讯位置服务地图SDK的使用能够进行地址解析和反向地址解析。教学重点地址解析和反向地址解析的实现方法。教学难点GPS核心API的灵活运用教学内容腾讯位置服务为地址解析和逆地址解析提供了接口。通过发送GET请求,返回json数据,数据中包含了经纬度和地址的相关信息。1.地址解析(1)请求URL/ws/geocoder/v1/?address=您需要解析的地址&key=您申请的APIKey。(2)返回的json数据结构表6-6json数据结构表名称类型说明statusnumber状态码,0为正常,其它为异常(可关注message信息)messagestring状态说明resultobject地址解析结果titlestring解析到坐标所用到的关键地址、地点locationstring解析到的坐标(GCJ02坐标系)latnumber纬度lngnumber经度address_componentsobject解析后的地址部件provincestring省citystring市districtstring区,可能为空字串streetstring街道,可能为空字串street_numberstring门牌,可能为空字串ad_infoobject行政区划信息adcode行政区划代码similaritynumber即将下线,由reliability代替deviationnumber即将下线,由level代替reliabilitynumber可信度参考:值范围1<低可信>-10<高可信>
我们根据用户输入地址的准确程度,在解析过程中,将解析结果的可信度(质量),由低到高,分为1-10级,该值>=7时,解析结果较为准确,<7时,会存各类不可靠因素,开发者可根据自己的实际使用场景,对于解析质量的实际要求,进行参考。levelnumber解析精度级别,分为11个级别,一般>=9即可采用(定位到点,精度较高)也可根据实际业务需求自行调整,完整取值表见下文。2.逆地址解析(1)请求URL/ws/geocoder/v1/?location=纬度,经度&key=您申请的APIKey&get_poi=1。(2)返回的json数据结构表6-7json数据结构表statusnumber状态码,0为正常,其它为异常(可关注message信息)messagestring状态说明request_idstring本次请求的唯一标识resultobject逆地址解析结果addressstring以行政区划+道路+门牌号等信息组成的标准格式化地址formatted_addressesobject结合知名地点形成的描述性地址,更具人性化特点recommendstring推荐使用的地址描述,描述精确性较高roughstring粗略位置描述address_componentobject地址部件,address不满足需求时可自行拼接nationstring国家provincestring省citystring市districtstring区,可能为空字串streetstring街道,可能为空字串street_numberstring门牌,可能为空字串ad_infoobject行政区划信息nation_codestring国家代码(ISO3166标准3位数字码)adcodestring行政区划代码city_codestring城市代码,由国家码+行政区划代码(提出城市级别)组合而来,总共为9位namestring行政区划名称locationobject行政区划中心点坐标latnumber纬度lngnumber经度nationstring国家provincestring省/直辖市citystring市/地级区及同级行政区划districtstring区/县级市及同级行政区划address_referenceobject坐标相对位置参考famous_areaobject知名区域,如商圈或人们普遍认为有较高知名度的区域idstring地点唯一标识titlestring名称/标题locationobject坐标latnumber纬度lngnumber经度_distancenumber此参考位置到输入坐标的直线距离_dir_descstring此参考位置到输入坐标的方位关系,如:北、南、内business_areaobject商圈,目前与famous_area一致townobject乡镇街道idstring地点唯一标识titlestring名称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人护理中的心理干预
- 上海工程技术大学《安全工程信息技术与管理》2025-2026学年第一学期期末试卷(B卷)
- 临床慢性鼻窦炎护理查房记录
- 高中人际和谐教设计2025
- 上海工商职业技术学院《AutoCAD 机械制图》2025-2026学年第一学期期末试卷(B卷)
- 第二节 图形图像概述说课稿2025学年初中信息技术河大版2016七年级下册-河大音像版2016
- 脑出血患者饮食护理
- 初中购物售后服务说课稿
- 腰椎压缩骨折的微创手术护理
- 小学阅读习惯养成说课稿2025年趣味设计
- 2026新疆哈密市公安局社会招聘警务辅助人员220人备考题库及答案详解(有一套)
- 《公共机构碳排放核算指南》(jst303-2026)培训课件
- (四调)武汉市2026届高三毕业生四月调研考试语文试卷(含答案及解析)
- 2025年西藏初二学业水平地理生物会考试卷题库及答案
- 2026年消毒技术副高能力检测试卷含答案详解(培优A卷)
- 一次函数的概念课件2025-2026学年人教版八年级数学下册
- 2026年福建建工集团有限责任公司校园招聘笔试参考题库及答案解析
- 2026年能源集成托管运营协议
- 《女性盆底重建手术植入物并发症诊疗中国专家共识》
- 2025-2030中国蓄能器市场竞争策略及发展前景态势剖析研究报告
- 小贷公司业务培训课件
评论
0/150
提交评论